java - JFreeChart 堆叠水平条形图中的错误
问题描述
为什么这段代码:
DefaultCategoryDataset datasetE = new DefaultCategoryDataset();
datasetE.addValue(0.5, "HOLDING", "NOME 1");
datasetE.addValue(0.7, "HOLDING", "NOME 2");
datasetE.addValue(0.1, "HEATING", "NOME 3");
datasetE.addValue(0.5, "HEATING", "NOME 4");
datasetE.addValue(0.8, "HEATING", "NOME 5");
JFreeChart jfreechart = ChartFactory.createStackedBarChart("Stacked Bar Chart Demo 1", "Category", "Value", datasetE, PlotOrientation.VERTICAL, true, true, false);
jfreechart.setBackgroundPaint(Color.white);
CategoryPlot categoryplot = (CategoryPlot)jfreechart.getPlot();
categoryplot.setBackgroundPaint(Color.lightGray);
categoryplot.setRangeGridlinePaint(Color.white);
StackedBarRenderer stackedbarrenderer = (StackedBarRenderer)categoryplot.getRenderer();
stackedbarrenderer.setSeriesItemLabelGenerator(0, new StandardCategoryItemLabelGenerator());
stackedbarrenderer.setSeriesVisible(0, true);
ChartPanel CPProgesterona = new ChartPanel(jfreechart,400,80,400,80,400,80,false,false,false,false,false,false); panel2.add(CPProgesterona,BorderLayout.NORTH);
返回这个:
解决方案
您的数据集有两个系列,每个系列都有一个不同的行键;但它有五个不同的类别,每个类别都有五个不同的列键之一。您可能需要两个系列,每个系列都有自己的一组不同的列键。
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(0.5, "HOLDING", "NAME 1");
dataset.addValue(0.7, "HOLDING", "NAME 2");
dataset.addValue(0.1, "HEATING", "NAME 1");
dataset.addValue(0.5, "HEATING", "NAME 2");
dataset.addValue(0.8, "HEATING", "NAME 3");
JFreeChart jfreechart = ChartFactory.createStackedBarChart(
"Stacked Bar Chart", "Category", "Value", dataset,
PlotOrientation.HORIZONTAL, true, true, false);
CategoryPlot categoryplot = (CategoryPlot) jfreechart.getPlot();
categoryplot.setBackgroundPaint(Color.lightGray);
categoryplot.setRangeGridlinePaint(Color.white);
StackedBarRenderer stackedbarrenderer = (StackedBarRenderer) categoryplot.getRenderer();
stackedbarrenderer.setDefaultItemLabelGenerator(new StandardCategoryItemLabelGenerator());
stackedbarrenderer.setDefaultItemLabelsVisible(true);
推荐阅读
- c - 如何让 strcasecmp 比较字符串而不区分大小写
- bash - 使用 Shell 脚本或 awk 以 CSV 文件的 columnName = columnValue 形式显示输出
- mysql - 如何在续集中连接列值?
- python - 当需要文件名函数时,Django css 的正确方法是什么?
- c - 在 c 中声明的矩阵。并用单词改变矩阵
- java - 如何在 CD 后使用 Azure 自动运行 maven 项目并显示正确的网页
- c# - 使用 Graph SDK 在 Sharepoint Drive 的特定目录中创建文件夹
- sql - 线性扩展 oracle 表字段
- json - grep : 计算 json 响应中的元素个数
- laravel - 如何在视图文件laravel中显示参数的两个选项之一