2012-03-21 5 views
4

En fait, je vais avoir une question très similaire à l'article suivant: http://www.jfree.org/phpBB2/viewtopic.php?t=24713JFreeChart - Comment améliorer les étiquettes dans un diagramme circulaire

Sauf qu'au lieu des différences dans les versions, mes résultats pour les étiquettes sont un peu comme le 3ème camembert où je préférerais les avoir comme le 1er graphique (plus d'espace par ligne - lignes plus larges) de sorte qu'ils n'ont pas à enrouler à la ligne suivante si rapidement. J'ai essayé tout ce que je peux penser pour augmenter la taille des étiquettes, mais rien ne semble fonctionner. Ma pensée principale est d'ajuster où l'étiquette commence à être écrite, et à travers beaucoup de débogage de la source, j'ai été en mesure d'étendre la taille de la boîte, mais pas la chaîne réelle. Je ne pouvais pas trouver un moyen de le faire sans modifier la source à travers une sorte de configuration, et même alors, je ne pouvais pas ajuster le texte correctement, seulement la boîte. Et il a fallu beaucoup d'efforts, le code n'est pas au même endroit pour les deux.

Toutes les suggestions sur la façon de configurer le graphique à secteurs afin que les étiquettes comme illustré dans l'article ci-dessus fonctionnent plus comme le 1er tableau que le dernier tableau serait apprécié. J'ai fait ce qui a été suggéré dans le post:

plot.setInteriorGap(0.02); 
plot.setMaximumLabelWidth(0.20); 
plot.setLabelLinkStyle(PieLabelLinkStyle.CUBIC_CURVE); 

mais il n'a fait aucune différence réelle. La valeur par défaut est CUBIC_CURVE dans la dernière version. Le setInteriorGap a eu une légère amélioration mais c'était minime. Et l'autre ligne n'a rien fait.

Ce qui est vraiment troublant, c'est la quantité d'espace blanc à gauche et à droite du graphique généré. Ce serait génial de pouvoir utiliser cet espace en quelque sorte.

Répondre

0

Je ne suis pas sûr du premier numéro. Cependant, j'ai une idée de ce qu'il faut faire à propos des espaces restants.

Si vous convertissez le graphique à une image, vous pouvez essayer de limiter les espaces blancs autour par les éléments suivants:

BufferedImage chartImage = chart.createBufferedImage(width, height); 
chartImage = chartImage.getSubImage(howMuchToTrimOnLeft, howMuchtoTrimOnTop, width - howMuchToTrimOnLeft - howMuchToTrimOnRight, height - howMuchtoTrimOnTop - howMuchToTrimOnBottom); 

Le résultat chartImage contiendra une version réduite. Assurez-vous de faire en sorte que les valeurs initiales de largeur et de hauteur soient plus grandes que les dimensions de la zone que vous voulez que le graphique occupe, puis réduisez-le à la taille voulue.

Questions connexes