JFreeChart 显示三个点 (...) 代替 X 轴上的值
JFreeChart displaying three dots (...) in place of the values on the X axis
我正在尝试绘制一个简单的折线图,几乎一切都很好,我正在使用如下简单代码填充我的数据集:
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 轴上没有足够的 space 并显示三个点 (...) 代替值。这很奇怪,我想有多少分就多少分(例如 1000,有一个好的
分辨率),但标签只显示这些点的一个子集,所以我不 运行 出 od space:
例如点数: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()
.
我正在尝试绘制一个简单的折线图,几乎一切都很好,我正在使用如下简单代码填充我的数据集:
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 轴上没有足够的 space 并显示三个点 (...) 代替值。这很奇怪,我想有多少分就多少分(例如 1000,有一个好的 分辨率),但标签只显示这些点的一个子集,所以我不 运行 出 od space:
例如点数: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()
.