Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jfreechart中条形图的宽度_Java_Jfreechart_Bar Chart - Fatal编程技术网

Java Jfreechart中条形图的宽度

Java Jfreechart中条形图的宽度,java,jfreechart,bar-chart,Java,Jfreechart,Bar Chart,有没有办法调整条形图中条形的宽度 我用以下代码创建图表 final JFreeChart chart = ChartFactory.createBarChart("Report", // chart title "Date", // domain axis label "Number", // range axis label dataset, // data Plot

有没有办法调整条形图中条形的宽度

我用以下代码创建图表

final JFreeChart chart = ChartFactory.createBarChart("Report", // chart title
                "Date", // domain axis label
                "Number", // range axis label
                dataset, // data
                PlotOrientation.VERTICAL, // orientation
                true, // include legend
                true, // tooltips?
                false // URLs?
                );  
根据Dave Gilbert(JFreeChart项目负责人)

条形宽度将自动调整 计算并将取决于 图表或绘图宽度以及 数据集中的项目


请参阅讨论。

您不能直接指定条形图的宽度,但有几个属性可以更改,从而影响宽度。您应该查看由CategoryAxis定义的lowerMarginupperMargincategoryMargin属性,或由Derrer中的itemMargin属性定义

例如:

    BarRenderer renderer = (BarRenderer) chart.getCategoryPlot().getRenderer();
    renderer.setItemMargin(.1);

setItemMargin(double percent)
中指定的double是类别轴总长度的百分比,将用于同一类别中条之间的间距(默认值为.2或20%)。该值越小,条越大。

您还可以设置条的最大宽度。如果你有一个很宽的图表,但偶尔只有一个或两个数据点,并且你不希望一个大的胖条占据整个区域,那么这很有用

CategoryPlot categoryPlot = chart.getCategoryPlot();
BarRenderer br = (BarRenderer) categoryPlot.getRenderer();
br.setMaximumBarWidth(.35); // set maximum width to 35% of chart

在使用正边距和零没有得到任何结果后,我尝试对
itemMargin
使用负数来查看会发生什么。栅栏开始变厚了。不过,我不知道是否建议这样做,因为如果没有足够的可用空间,您将得到重叠

BarRenderer renderer = (BarRenderer) chart.getCategoryPlot().getRenderer();
renderer.setItemMargin(-2);

明亮的我又遇到了同样的问题,我无法用setMaximumBarWidth实现任何目标,这就成功了。谢谢