我正在开发一个程序,该程序采用一组双精度并将它们全部显示在水平条形图的一行中。现在它可以工作,除了着色。我有不确定的行数,因此数据被添加到图表中,如下所示:
public CategoryDataset createDataset() {
DefaultCategoryDataset bardataset1 = new DefaultCategoryDataset();
for (int i = 0; i < nanoArray.length; i++) {
bardataset1.addValue(nanoArray[i], "Packet" + i, "Class A");
bardataset1.addValue(startgap, "Packet Gap" + i, "Class A");
}
}
这可以正确堆叠数据,但是因为大约有 300 个不同的 rowKey,它分配了 300 种不同的颜色。我附上了这张照片,向您展示它的样子:
如您所见,这使数据完全不可读。我想要的是看到红色和蓝色的交替颜色条。
编辑:我找到了答案;我使用了jcern的方法。我还编写了一个for
循环,它遍历我的双精度数组的长度,并根据它是偶数还是奇数来分配颜色。
for (int i = 0; i < packetCount; i++) {
setSeriesToolTipGenerator(i, new StandardCategoryToolTipGenerator());
if (i % 2 == 0) {
setSeriesPaint(i, new Color(255, 0, 0));
} else {
setSeriesPaint(i, new Color(0, 0, 0));
}
}