gpt4 book ai didi

java - 带有半透明重叠条的 JFreeChart

转载 作者:行者123 更新时间:2023-11-30 02:31:16 25 4
gpt4 key购买 nike

我想使用 JFreeChart 创建一个条形图,如下所示:

http://desk.stinkpot.org:8080/tricks/index.php/2006/07/how-to-make-a-transparent-histogram-in-matlab/

这些条是半透明且重叠的。我尝试使用 DefaultCategoryDataset,但它绘制了彼此相邻的条形,这是我不想要的。我知道如何使条形半透明,我只想使条形重叠。有没有简单的方法可以实现这一点?

更新:使用trashgod的答案我已经成功地完成了它。如果有人感兴趣的话,这是代码:

import java.awt.*;
import java.util.*;
import javax.swing.*;
import org.jfree.chart.*;
import org.jfree.chart.plot.*;
import org.jfree.chart.renderer.xy.*;
import org.jfree.data.statistics.*;

public class Histograph {

public static void main(String[] args) {
Random generator = new Random();
HistogramDataset dataset = new HistogramDataset();
double[] d1 = new double[100];
double[] d2 = new double[100];
double[] d3 = new double[100];
for (int i = 1; i < 100; i++) {
d1[i] = generator.nextInt(10);
d2[i] = generator.nextInt(10);
d3[i] = generator.nextInt(10);
}
dataset.addSeries("s1", d1, 10);
dataset.addSeries("s2", d2, 10);
dataset.addSeries("s3", d3, 10);
JFreeChart chart = ChartFactory.createHistogram("Histogram", "x", "y",
dataset, PlotOrientation.VERTICAL, false, false, false);
XYPlot plot = (XYPlot)chart.getPlot();
plot.setBackgroundPaint(Color.white);
XYBarRenderer renderer = (XYBarRenderer)plot.getRenderer();
renderer.setBarPainter(new StandardXYBarPainter());
renderer.setShadowVisible(false);
renderer.setSeriesPaint(0, new Color(1, 0, 0, 0.5f));
renderer.setSeriesPaint(1, new Color(0, 1, 0, 0.5f));
renderer.setSeriesPaint(2, new Color(0, 0, 1, 0.5f));
JFrame f = new JFrame("Histogram");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(new ChartPanel(chart));
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
}

最佳答案

如果您使用的是 BarRenderer ,指定负值 setItemMargin() ,如图here-50 的值如下所示:

image

或者,考虑ChartFactory.createHistogram() ,它使用带有相邻条的 XYBarRenderer,如图 here 所示。和 here .

image1

image2

关于java - 带有半透明重叠条的 JFreeChart,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44211444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com