Ktoś, kto ma doświadczenie w korzystaniu z JFreeChart, jest sposobem na zmianę koloru moich etykiet dla moich osi XY. Teraz używam XYPlot
i chcę zmienić kolor etykiet na moich osiach. Czy jest jakiś sposób na zrobienie tego?Zmiana koloru etykiet w JFreeChart
7
A
Odpowiedz
8
Powinieneś być w stanie użyć setTickLabelPaint()
na żądanym Axis
.
0
Użyłem tego kodu, aby zmienić kolor wszystkich moich etykietach:
private void setFontColor(Color fontColor) {
JFreeChart chart = getChart();
chart.getTitle().setPaint(fontColor);
Plot plot = chart.getPlot();
if (plot instanceof CategoryPlot) {
setAxisFontColor(((CategoryPlot) plot).getDomainAxis(), fontColor);
setAxisFontColor(((CategoryPlot) plot).getRangeAxis(), fontColor);
} else if (plot instanceof XYPlot) {
setAxisFontColor(((XYPlot) plot).getDomainAxis(), fontColor);
setAxisFontColor(((XYPlot) plot).getRangeAxis(), fontColor);
}
}
private void setAxisFontColor(Axis axis, Color fontColor) {
if (!fontColor.equals(axis.getLabelPaint()))
axis.setLabelPaint(fontColor);
if (!fontColor.equals(axis.getTickLabelPaint()))
axis.setTickLabelPaint(fontColor);
}
Jeśli używasz napisy, trzeba dodać je też.
Dziękuję, że odpowiedziałeś na moje pytanie. Dla każdego, kto ma ten problem, trochę utknąłem w tym, że getDomainAxis() XYPlot zwraca ValueAxis. Ale spojrzałem na dokumentację i zdałem sobie sprawę, że Valueaxis to klasa dziecięca Axis. – Albinoswordfish
Doskonały. Jedną z ciekawszych funkcji 'JFreeChart' jest to, że dokumenty API są budowane z opcją' linksource', dzięki czemu możesz nawigować, klikając nazwy. – trashgod
Czy można zmienić kolor farby w obrębie jednej etykiety? Na przykład. pierwsze słowo na etykiecie na czarno, a drugie na szaro? – CGFoX