jfreechart柱形图 一个柱子上怎么弄多种颜色

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jfreechart柱形图 一个柱子上怎么弄多种颜色相关的知识,希望对你有一定的参考价值。

参考技术A

可以用StackedBarChart来设置多个Series,每个Series会是一个颜色。如下图:

以下是部分代码,使用覆盖修改柱上series颜色

public JFreeChart toBudgetChart(String [] rowKeys,double [][] dataArray,String [] columnKeys){

CategoryDataset dpd = DatasetUtilities.createCategoryDataset(rowKeys, columnKeys,dataArray);

JFreeChart chart = ChartFactory.createStackedBarChart(chartParams.getTitle(), chartParams.getxDescrip(), chartParams.getyDescrip(), dpd, PlotOrientation.VERTICAL, true, false,false);

CategoryPlot plot = chart.getCategoryPlot(); 

StackedBarRenderer renderer = new CustomBarRenderer(chartParams);

renderer.setSeriesPaint(0, Color.blue);   

renderer.setSeriesPaint(1, Color.red);   


//自定义颜色显示

static class CustomBarRenderer extends StackedBarRenderer

private static double [][] _chartParams;

public CustomBarRenderer(double [][] dataArray)

_chartParams = dataArray;

@Override

public Paint getItemPaint(int i, int j)

double [] item = _chartParams[j];

//i=0为显示的第一个值,即较小值,i=1为较大值

//比较销售及目标,展示颜色

if(i == 0)

if(item[0]>item[1])

return Color.blue;

else

return Color.red;

else

if(item[0]>item[1])

return Color.blue;

else

return Color.red;


我想用EXCEL做一个柱形图图表,怎样才能将图表的纵坐标设置成科学计数法,要是10的N次方那种形式哦

首先插入一列或一行,通过除以10^n的方法,计算出科学记数法的小数部分。
请你把计算结果所在单元格格式的“数字”类型选为“自定义”
右面输入:
0.00×1"0"^n
其中,0.00表示一位整数,2位小数,小数请自己决定位数,有几个0就是几位。
后面引号中×是乘号,"0"表示数字0,为了不被识别为通配符加了引号,而1没必要加引号因为不是通配符,n和你之前除以的数保持一致就好。

例如:
2400,8009,2898,900
这么一组,除以1000,得到2.4,8.009,2.898.0.900,之后按照上法就可以显示为
2.4×10^3 ……
参考技术A 我用的EXCEL 2007,有两个办法:
1. 画图之后,选择纵坐标,点右键,设置坐标格式,坐标轴选项里有一个对数坐标格式,基数设为10即可。坐标的数字格式选项只能为一般数字格式或者科学计数格式0.00E+00
2. 先计算好数字再画图。插入一列,用对数函数=LOG10()计算,以得到的结果再画图。纵坐标的标题你可以输入为10^n标示一下.
参考技术B 在Excel工具栏上有常规选项,点开下拉菜单里边有科学技术10的2次方。选中就可以了

以上是关于jfreechart柱形图 一个柱子上怎么弄多种颜色的主要内容,如果未能解决你的问题,请参考以下文章

柱状图怎么显示数字

ggplot2绘制柱形图(2)

如何在JSP中实现柱形图 [

excel柱形图上如何显示百分比和数值

JFreeChart如何实现柱状图 一个柱子有多段数据

powerbi折线和堆积柱形图能变成竖着吗