我目前正在开发一个使用 JFreeChart 来显示箱线图的基于 Java 的项目。
我的问题是如何显示包含大约 20 个类别和 5 个以上系列的 CategoryDataset 的箱线图的图表。
目前,如果未设置 ChartPanel 的首选大小,则图例、标签和注释可读,但箱线图太小。或者设置 ChartPanel 的大小,以便 Boxplots 具有可接受的大小,但随后图例、标签和注释被水平拉伸。
我的问题是,如何在不缩放图表的图例、轴标签和注释的情况下正确缩放箱线图?是否可以在不缩放图表的所有元素的情况下缩放绘图?
代码示例
import java.awt.Color;
import java.awt.Dimension;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.renderer.category.BoxAndWhiskerRenderer;
import org.jfree.data.statistics.DefaultBoxAndWhiskerCategoryDataset;
public class StretchedBoxAndWhiskerExample{
DefaultBoxAndWhiskerCategoryDataset dataset;
JFreeChart chart;
ChartPanel chartPanel;
JFrame frame;
JScrollPane scrollPane;
public StretchedBoxAndWhiskerExample() {
createCategoryBoxplot();
frame = new JFrame();
scrollPane = new JScrollPane(chartPanel);
scrollPane.setPreferredSize(new Dimension(800,700));
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
frame.add(scrollPane);
frame.pack();
frame.setVisible(true); …Run Code Online (Sandbox Code Playgroud) 我用JFreeChart创建了一个温度计图表,但我想改变温度计中的水银颜色.我怎样才能做到这一点?到目前为止,这是我的代码; 请说明更改此代码的位置:
final DefaultValueDataset dataset = new DefaultValueDataset(new Double(10));
// create the chart...
final ThermometerPlot plot = new ThermometerPlot(dataset);
final JFreeChart chart = new JFreeChart("Thermometer Demo 2", // chart title
JFreeChart.DEFAULT_TITLE_FONT,
plot, // plot
false); // include legend
chart.setBackgroundPaint(new Color(241,250,224));
plot.setMercuryPaint();
final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setUpperBound(50);
Run Code Online (Sandbox Code Playgroud)