更改组合图中的绘图标签位置 JFreeChart
Change Plot label position in a Combined Plot JFreeChart
有没有办法将类别图标签(标题)(图像中用黑条截断)的位置更改为位于图表顶部和/或彼此垂直对齐?
这是我用来构造它的 类。
var renderer = new LineAndShapeRenderer();
...
var yAxis = new NumberAxis();
...
var xAxis = new CategoryAxis(title);
...
CategoryPlot plot = new CategoryPlot(dataset, xAxis, yAxis, renderer);
...
var combinedPlot = new CombinedRangeCategoryPlot();
combinedPlot.add(plot, weight);
...
我使用的是 JFreeChart 1.0.19 版,因为较新的版本会产生一些视觉效果。
There has been a misunderstanding: I meant the labels, "Plot 0" and "Plot1", in your example; and I'm asking for the ability to move them on top of the chart…
在每个 子图 域轴上调用 setDomainAxisLocation()
以移动轴及其标签。或者,从下面显示的 List<CategoryPlot>
中获取所需的轴参考。
plot0.setDomainAxisLocation(AxisLocation.TOP_OR_LEFT);
plot1.setDomainAxisLocation(AxisLocation.TOP_OR_LEFT);
I only need those "Plot 0" and "Plot1" labels on top, not the tick labels…
您可以使用 setTickLabelsVisible(false)
根据需要隐藏刻度标签,并且您可以有多个轴,如图 here。
要调整刻度标签方向,请在包含组合图的每个 子批次 上调用 setCategoryLabelPositions()
。这样做
创建绘图时。
CategoryAxis axis0 = new CategoryAxis("Plot 0");
axis0.setCategoryLabelPositions(CategoryLabelPositions.UP_90);
CategoryPlot plot0 = new CategoryPlot(…, axis0, …);
…
CategoryAxis axis1 = new CategoryAxis("Plot 1");
axis1.setCategoryLabelPositions(CategoryLabelPositions.UP_90);
CategoryPlot plot1 = new CategoryPlot(…, axis1, …);
创建组合图后。
CombinedRangeCategoryPlot combinedplot = new CombinedRangeCategoryPlot(…);
…
List<CategoryPlot> list = combinedplot.getSubplots();
list.get(0).getDomainAxis().setCategoryLabelPositions(CategoryLabelPositions.UP_90);
list.get(1).getDomainAxis().setCategoryLabelPositions(CategoryLabelPositions.UP_90);
垂直标签如下图所示。
有没有办法将类别图标签(标题)(图像中用黑条截断)的位置更改为位于图表顶部和/或彼此垂直对齐?
这是我用来构造它的 类。
var renderer = new LineAndShapeRenderer();
...
var yAxis = new NumberAxis();
...
var xAxis = new CategoryAxis(title);
...
CategoryPlot plot = new CategoryPlot(dataset, xAxis, yAxis, renderer);
...
var combinedPlot = new CombinedRangeCategoryPlot();
combinedPlot.add(plot, weight);
...
我使用的是 JFreeChart 1.0.19 版,因为较新的版本会产生一些视觉效果。
There has been a misunderstanding: I meant the labels, "Plot 0" and "Plot1", in your example; and I'm asking for the ability to move them on top of the chart…
在每个 子图 域轴上调用 setDomainAxisLocation()
以移动轴及其标签。或者,从下面显示的 List<CategoryPlot>
中获取所需的轴参考。
plot0.setDomainAxisLocation(AxisLocation.TOP_OR_LEFT);
plot1.setDomainAxisLocation(AxisLocation.TOP_OR_LEFT);
I only need those "Plot 0" and "Plot1" labels on top, not the tick labels…
您可以使用 setTickLabelsVisible(false)
根据需要隐藏刻度标签,并且您可以有多个轴,如图 here。
要调整刻度标签方向,请在包含组合图的每个 子批次 上调用 setCategoryLabelPositions()
。这样做
创建绘图时。
CategoryAxis axis0 = new CategoryAxis("Plot 0"); axis0.setCategoryLabelPositions(CategoryLabelPositions.UP_90); CategoryPlot plot0 = new CategoryPlot(…, axis0, …); … CategoryAxis axis1 = new CategoryAxis("Plot 1"); axis1.setCategoryLabelPositions(CategoryLabelPositions.UP_90); CategoryPlot plot1 = new CategoryPlot(…, axis1, …);
创建组合图后。
CombinedRangeCategoryPlot combinedplot = new CombinedRangeCategoryPlot(…); … List<CategoryPlot> list = combinedplot.getSubplots(); list.get(0).getDomainAxis().setCategoryLabelPositions(CategoryLabelPositions.UP_90); list.get(1).getDomainAxis().setCategoryLabelPositions(CategoryLabelPositions.UP_90);
垂直标签如下图所示。