相关疑难解决方法(0)

22
推荐指数
1
解决办法
3万
查看次数

具有多个类别的箱线图的 JFreeChart 缩放

我目前正在开发一个使用 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)

java charts scaling jfreechart boxplot

5
推荐指数
1
解决办法
1万
查看次数

在JFreeChart中改变温度计中的水银颜色

我用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)

java jfreechart

3
推荐指数
1
解决办法
7014
查看次数

标签 统计

java ×3

jfreechart ×3

boxplot ×1

charts ×1

dynamic ×1

scaling ×1

swing ×1