我正在尝试绘制一个简单的折线图,几乎一切都很好,我正在使用如下简单代码填充我的数据集:
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(-10 , "S21" , "1000" );
dataset.addValue(-20 , "S21" , "1001" );
dataset.addValue(-25 , "S21" , "1002" );
dataset.addValue(-30 , "S21" , "1003" );
dataset.addValue(-25 , "S21" , "1004" );
...
然后我创建一个折线图:
lineChart = ChartFactory.createLineChart(
"S21",
"Frequency (MHz)",
"Value (db)",
dataset,
PlotOrientation.VERTICAL,
true,
true,
false);
我在 X 轴上有值 1000 1001 1002 ... 等等。无论如何我注意到,如果我添加更多点,jfreechart 在 x 轴上没有足够的空间并显示三个点(... ) 代替值。这很奇怪,我想有多少分就多少分(例如 1000,有一个好的 分辨率),但标签只显示这些点的一个子集,所以我不会用完 od 空间:
例如积分:1000, 1001, 1002, ..., 2000(1000 积分)
标签:1000、1100、1200、...、1900、2000(10 个标签)
这可能吗?我在网上寻找解决方案,但没有找到任何有用的东西。
最佳答案
您可能需要结合几种方法:
按照建议更改
CategoryLabelPositions
here .CategoryAxis domainAxis = plot.getDomainAxis(); domainAxis.setCategoryLabelPositions( CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 2.0));
按照建议调整图表的大小here .
ChartPanel piePanel = new ChartPanel(lineChart) { @Override public Dimension getPreferredSize() { return new Dimension(640, 480); } };
可选地,根据类别的数量,使用
SlidingCategoryDataset
,如建议的那样 here .可选地,如果类别形成连续域,则切换到 XY 图,例如
ChartFactory.createXYLineChart()
。
关于java - JFreeChart 显示三个点 (...) 代替 X 轴上的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45327114/