Положение оси JFreeChart - PullRequest
       10

Положение оси JFreeChart

0 голосов
/ 12 марта 2012

Допустим, общая гистограмма с вертикальной осью слева ... Интересно, как я могу контролировать пространство между левой стороной графика и вертикальной осью?Идея состоит в том, что всякий раз, когда метки тиков, отображаемые на оси, увеличиваются, ось сдвигается вправо для размещения меток тиков.Я хочу иметь возможность указать, что ось должна всегда отображаться на 20% от всей ширины диаграммы, возможно ли это?

Ответы [ 2 ]

0 голосов
/ 15 июля 2016

Вам необходимо установить фиксированное пространство на оси диапазона: http://www.jfree.org/jfreechart/api/gjdoc/org/jfree/chart/plot/XYPlot.html#setFixedRangeAxisSpace:AxisSpace

Предполагается, что вы просто создаете изображение диаграммы:

// Get your plot from the chart object..
XYPlot plot = (XYPlot)chart.getPlot();

// Create an instance of the image so we can do some calculations
BufferedImage image = new BufferedImage( width, height, BufferedImage.TYPE_INT_ARGB);

// Create an instance of the Graphics2D from your image
Graphics2D g2 = image.createGraphics();

// Get the reserve space that jfree chart sets aside for the axis
AxisSpace space = yAxis.reserveSpace(g2, plot, new Rectangle(width,height), plot.getRangeAxisEdge(), plot.getFixedRangeAxisSpace());

// Give that space a fixed width
space.setLeft(fixedAxisWidth);

// Set it in the plot
plot.setFixedRangeAxisSpace(space);

Возможно, вы сможете просто определить AxisSpace, не пройдя весь ригамароль Graphics2D, но это то, как я делал это в прошлом.

0 голосов
/ 12 марта 2012

Гистограмма обычно имеет CategoryAxis для домена, поэтому вы можете поэкспериментировать с setLowerMargin(), setUpperMargin() и setCategoryMargin().

...