我想循环更改条形图数据,但我不知道该怎么做。我的代码:
DefaultCategoryDataset barChartData = new DefaultCategoryDataset();
barChartData.setValue(0, "Values","1");
barChartData.setValue(0, "Values","2");
barChartData.setValue(0, "Values","3");
JFreeChart barChart = ChartFactory.createBarChart("Proxi", "Sensors", "Value", barChartData, PlotOrientation.VERTICAL, false, true, false);
CategoryPlot barchrt = barChart.getCategoryPlot();
barchrt.setRangeGridlinePaint(Color.ORANGE);
ChartPanel barPanel = new ChartPanel(barChart);
barPanel.setBounds(0, 0, 731, 456);
contentPane.add(barPanel);
更新 模型 ,随后将显示侦听 视图
。动画更新,而不会阻塞事件调度线程,使用javax.swing.Timer
; stop()
根据需要调用。
经测试:
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.util.Random;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JFrame;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
/**
* @see https://stackoverflow.com/a/21267585/230513
*/
public class Test {
private static final String ROW_KEY = "Values";
private static final Random r = new Random();
private void display() {
JFrame f = new JFrame("Test");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final DefaultCategoryDataset model = new DefaultCategoryDataset();
model.setValue(1, ROW_KEY, "1");
model.setValue(2, ROW_KEY, "2");
model.setValue(3, ROW_KEY, "3");
JFreeChart chart = ChartFactory.createBarChart("Proxi", "Sensors",
"Value", model, PlotOrientation.VERTICAL, false, true, false);
ChartPanel barPanel = new ChartPanel(chart) {
@Override
public Dimension getPreferredSize() {
return new Dimension(320, 240);
}
};
f.add(barPanel);
f.add(new JButton(new AbstractAction("Update") {
@Override
public void actionPerformed(ActionEvent e) {
model.setValue(r.nextDouble() * 3, ROW_KEY, "2");
}
}), BorderLayout.SOUTH);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new Test().display();
}
});
}
}
主要内容:什么是JFreeChart 条形图,JFreeChart 条形图的示例什么是JFreeChart 条形图 条形图是用矩形表示分组数据的图表。条形的高度或长度是代表条形的值的命题。 下图显示了 JFreeChart 库中包含的一些条形图的演示版本: JFreeChart 条形图的示例 让我们以人口数量作为样本数据。 年份 美国(百万) 中国(百万) 印度(百万) 2005年 10 15 20 2010年 15 20 25 2015年 20 25 30 以下代码根据上述
我得到了一个JFrame,在这个框架中有一个JPanel,JPanel中有一个JFreeChart(chart从一个方法中获取数据集),这个图表被添加到JPanel中创建的ChartPanel,然后ChartPanel被添加到JPanel中。此外,我在JPanel中获得了JComboBox,如果我更改了JComboBox中的选项,ActionListener将更新DataSet的值。返回datas
问题内容: 我的Java Web 应用程序的BAR图表中显示了以下值。9.46373791E8 9.45942547E8 9.45559945E8 9.45187023E8 9.44856693E8 9.44417826E8 9.44007878E8 如您所见,这些值实际上很接近,并且有微小的差异。当我 使用Jfreechart生成条形图时,所有条形都显示几乎相同的 高度,并且无法从视觉上分辨出差
问题内容: 我正在尝试创建一个条形图,该条形图从for循环内生成一个数据集。 数据是。现在,当数据经过所有这些操作并生成图形时,仅显示值5的条。值10的分隔条在哪里?有人知道我在做什么错吗?任何帮助表示赞赏。谢谢 编辑:这是条形图的代码: 问题答案: 我猜你在犯一个小错误,那就是。因此,每次将每个项目添加到一个单独的对象中,并使用具有最后一个值的最终实例来创建图表时,这就是在图表中仅获得最后一个值
我已经在网上搜索了足够多的东西,但没有运气。 我已经创建了一个堆叠的3D条形图,其中我无法更改默认颜色。我试了所有提供的建议。 EvenI使用了,但它不起作用。与图表、情节和渲染器中的创作顺序有关吗? 当我打印行和列时,我得到以下信息:
我正在使用gnuplot绘制条形图。 问题是:我希望每个酒吧都有不同的颜色。例如:红色的MSA-GA ACO和蓝色的MSA-GA PACO。 我该怎么做呢? 以下是我使用过的命令: “data.dat”: