一个柱子上生成多段颜色
时间: 2024-03-09 21:46:56 浏览: 123
Vue通过for循环随机生成不同的颜色或随机数的实例
5星 · 资源好评率100%
要在柱子上生成多段颜色,可以使用JFreeChart中的渐变填充效果。可以通过设置BarRenderer中的Paint属性来实现。
下面是一个示例代码,可以生成一个柱子上多段颜色的柱状图:
```java
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GradientPaint;
import javax.swing.JFrame;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.data.category.DefaultCategoryDataset;
public class BarChartGradientExample {
public static void main(String[] args) {
// 创建数据集对象
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(25, "Series 1", "Category 1");
// 创建柱状图对象
JFreeChart chart = ChartFactory.createBarChart(
"Bar Chart Gradient Example", // 图表标题
"Category", // x轴标签
"Value", // y轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向
true, // 是否显示图例
true, // 是否生成工具提示
false // 是否生成URL链接
);
// 设置柱状图渲染器
CategoryPlot plot = (CategoryPlot) chart.getPlot();
BarRenderer renderer = (BarRenderer) plot.getRenderer();
GradientPaint gp1 = new GradientPaint(
0.0f, 0.0f, Color.BLUE,
0.0f, 0.0f, new Color(0, 0, 64)
);
GradientPaint gp2 = new GradientPaint(
0.0f, 0.0f, Color.GREEN,
0.0f, 0.0f, new Color(0, 64, 0)
);
renderer.setSeriesPaint(0, gp1);
renderer.setSeriesPaint(1, gp2);
renderer.setDrawBarOutline(false);
// 设置x轴标签位置
CategoryAxis xAxis = plot.getDomainAxis();
xAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
// 设置y轴范围
NumberAxis yAxis = (NumberAxis) plot.getRangeAxis();
yAxis.setRange(0, 30);
// 将图表绘制到Swing组件中
JPanel panel = new ChartPanel(chart);
panel.setPreferredSize(new Dimension(500, 300));
JFrame frame = new JFrame("Bar Chart Gradient Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);
}
}
```
运行以上代码,即可看到生成的柱子上多段颜色的柱状图。在示例代码中,我们设置了两个渐变颜色,通过设置BarRenderer中的Paint属性来实现。可以按照需要自定义渐变颜色。
阅读全文