标签: jfreechart

如何构建和使用 TimeSeriesCollections

我想在图表的 X 轴上显示一些日期,这里据说我必须使用 TimeSeriesCollections 对象

似乎我必须向 TimeSeriesCollections 添加一个 TimeSeries,并且必须使用 RegularTimePeriod 构建 TimeSeries ......我有点困惑......

你能解释一下我必须做什么吗?如果可能的话,你能提供一些示例代码吗?谢谢

java time-series jfreechart

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

没有 X11 的 Jfreechart

我正在使用 Jfreechart 创建图表。我正在创建BufferedImage图表并将其写入OutputStream.

它在显示环境中工作正常,但在环境中不起作用headless

请帮助您如何让它在这样的环境中工作。

我在日志中遇到异常:

SEVERE: Servlet.service() for servlet [appServlet] in context with path [/WebAdmin] threw exception [Handler processing failed; nested exception is java.lang.InternalError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.] with root cause
java.lang.InternalError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.
    at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
    at sun.awt.X11GraphicsEnvironment.access$200(X11GraphicsEnvironment.java:65)
    at sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:110)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:74)
    at java.lang.Class.forName0(Native Method) …
Run Code Online (Sandbox Code Playgroud)

java jfreechart

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

如何设置堆积条形图中背景所有部分的颜色

以下是英格兰和苏格兰之间拉锯战当前状态的代码:

public TugOfWar(String s) {
    super(s);

    // data set
    DefaultKeyedValues2DDataset dataset = new DefaultKeyedValues2DDataset();
    dataset.addValue(0.2, "England", "");
    dataset.addValue(0.8, "Scotland", "");

    JFreeChart chart = ChartFactory.createStackedBarChart("tug-of-war",
        "", "", dataset, PlotOrientation.HORIZONTAL, true, false, false);
    CategoryPlot plot = chart.getCategoryPlot();

    // customize axis
    SymbolAxis axis = new SymbolAxis("", new String[]{
            "England", "draw", "Scotland"});
    axis.setRange(0, 2d);
    plot.setRangeAxis(axis);

    // customize renderer
    BarRenderer renderer = new StackedBarRenderer();
    renderer.setBase(0.8);
    renderer.setMinimumBarLength(0);
    renderer.setMaximumBarWidth(0.5);
    renderer.setItemMargin(0.0);
    renderer.setDrawBarOutline(true);
    renderer.setShadowVisible(true);
    renderer.setBarPainter(new StandardBarPainter());
    plot.setRenderer(renderer);

    // customize background
    plot.setBackgroundPaint(Color.WHITE);
    plot.setDomainGridlinePaint(Color.lightGray);
    plot.setRangeGridlinePaint(Color.lightGray);
    plot.setDomainCrosshairVisible(true);
    plot.setRangeCrosshairVisible(true);

    ChartPanel chartpanel = new …
Run Code Online (Sandbox Code Playgroud)

java jfreechart

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

使用JPanel将ChartPanel添加到JTabbedPane

我想补充JFreeChartJPanel,然后添加JPanelJTabbedPane.我设法显示JFreeChartJFrame,但我想添加JFreeChart为一个4片JTabbedPane.

代码显示图表:

public class Chart extends javax.swing.JPanel {

  private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

        JPanel jPanel1 = new JPanel();
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        dataset.setValue(60, "Marks", "Student 1");
        dataset.setValue(40, "Marks", "Student 2");
        dataset.setValue(90, "Marks", "Student 3");
        dataset.setValue(50, "Marks", "Student 4");
        dataset.setValue(70, "Marks", "Student 5");
        dataset.setValue(30, "Marks", "Student 6");

        JFreeChart chart = ChartFactory.createBarChart(
            "Student Marks", "Student Name", "Marks", dataset,
            PlotOrientation.VERTICAL, false, true, false);
        CategoryPlot p = …
Run Code Online (Sandbox Code Playgroud)

java charts jfreechart jtabbedpane chartpanel

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

JFreeChart:如何在同一图表上绘制折线图和散点图

我有两组数据

int[] x1 = {1,2,3,4,5,6,7,8,9,10};
int[] y1 = {1,2,3,5,6,8,9,10,14,11};

int[] x2 = {1,2,3,4,5,6,7,8,9,10};
int[] y2 = {0,2,3,5,0,8,9,8,14,11};

int[] z2 = {1,2,3,1,2,3,1,2,3,1};
Run Code Online (Sandbox Code Playgroud)

我要绘制的x1,y1作为XYLineChart,然后绘制x2,y2上没有线同积分散.

我还需要每个散点都是xy,y2不同的颜色,具体取决于值z2 (1=Color.red, 2=Color.green, 3=Color.blue)

我怎样才能做到这一点?

到目前为止,我有:

JPanel panel_1 = new JPanel();
panel_1.setLayout(new BorderLayout(0, 0));
XYSeriesCollection dataset = new XYSeriesCollection();
XYSeries series1 = new XYSeries("series1");
for(int i=0; i<x1.length; i++){
    series1.add(x1[i],y1[i]);
}
dataset.add(series1);
JFreeChart chart = ChartFactory.createXYLineChart("Title", "x", "y", dataset, PlotOrientation.VERTICAL, false, false, false);
ChartPanel cp = new ChartPanel(chart);
panel_1.add(cp, BorderLayout.CENTER); …
Run Code Online (Sandbox Code Playgroud)

java jfreechart scatter-plot line-plot

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

JFreeChart日期轴格式问题

我有一张时间序列图表.我的x轴是日期,Y轴只是数字.我试图在x轴上格式化日期,但是我一直在例外.我的代码如下:

        TimeSeries trueSeries = new TimeSeries("True Data");
        TimeSeries regressionSeries = new TimeSeries("Regression Line");
        TimeSeries averageSeries = new TimeSeries("Moving Average");

        for (Date date : regression.keySet()) {
            Calendar cal = Calendar.getInstance();
            cal.setTime(date);
            int month = cal.get(Calendar.MONTH) + 1;
            int day = cal.get(Calendar.DAY_OF_MONTH);
            int year = cal.get(Calendar.YEAR);
            regressionSeries.add(new Day(day, month, year),
                    regression.get(date));
            averageSeries.add(new Day(day, month, year),
                    movingAverage.get(date));
            trueSeries.add(new Day(day, month, year), trueData.get(date));
        }
        TimeSeriesCollection dataset = new TimeSeriesCollection();
        dataset.addSeries(trueSeries);
        dataset.addSeries(regressionSeries);
        dataset.addSeries(averageSeries);
        JFreeChart chart = ChartFactory.createXYLineChart(
                stock.getCompanyName() + " (" + stock.getTicker() + ")", …
Run Code Online (Sandbox Code Playgroud)

java graphing jfreechart

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

具有可选域轴和缩放功能的 JFreeChart

如何拥有像https://www.amcharts.com/demos/line-chart-with-scroll-and-zoom/这样的图表

我对这些功能特别感兴趣

  1. 能够使用这两个选择控件选择域轴的窗口。
  2. 能够通过选择域轴的一部分进行缩放。
  3. 为了能够缩小并看到更大的画面。
  4. 能够映射到范围轴 (Y) 并在任何点查看该气球上的值,如工具提示(无标记)

我在这里做了初步尝试Scrollable JFree 域轴和自定义标记标签在垃圾神的帮助下我使域可滚动。

我仍然缺少这些能够有效使用图形的功能。

java swing jfreechart

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

如何删除jfree图表-圆环图中的分隔线

我正在使用 Jfreechart 创建圆环图。我想删除分隔线(即绿色部分和白色部分之间的线)-这条线超出了图表部分。我需要将其限制为图表宽度。

以下是实际和预期图表: 在此处输入图片说明

在此添加的图像中,您可以清楚地看到图表饼图外的扩展分节线。(以蓝色圆圈标记)。我需要摆脱那条延长线,分节线不应超出实际的饼图区域。

任何人都可以帮助我实现这些目标。

下面是我正在使用的代码:

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
import javax.swing.JPanel;

import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlotState;
import org.jfree.chart.plot.RingPlot;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.jfree.text.TextUtilities;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RectangleInsets;
import org.jfree.ui.RefineryUtilities;
import org.jfree.ui.TextAnchor;
public class DonutChart extends ApplicationFrame {

    private static final long serialVersionUID = 1L;

    static class CustomRingPlot extends RingPlot {

        private Font centerTextFont;    
        private Color centerTextColor;

        public CustomRingPlot(PieDataset dataset) {
            super(dataset);
            this.centerTextFont = new Font(Font.SANS_SERIF, Font.BOLD, 24);
            this.centerTextColor = Color.BLACK; …
Run Code Online (Sandbox Code Playgroud)

java jfreechart

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

Rounded LineBorder - 并非所有角都是圆角

我正在使用JFreeChart并且我想ToolTip通过创建我自己的Class扩展ChartPanel和覆盖来自定义createToolTip()

static private class PrivateChartPanel extends ChartPanel{

    //constructors

    @Override
    public JToolTip createToolTip() {

        JToolTip jtt = super.createToolTip();

        jtt.setBackground(Color.WHITE);

        jtt.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1, true));

        return jtt;

    }

}
Run Code Online (Sandbox Code Playgroud)

问题出在Border。它不是在所有角落都是圆形的。

工具提示边界问题

为什么它不是在所有角落都圆润的,我是怎么做到的?

PS:我新建了一个简单的项目

import java.awt.Color;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class HelloWorld {

  public static void main(String[] args) {

    JFrame a = new JFrame();

    a.setBounds(100, 100, 100, 100);
    a.setLayout(null);

    JPanel b = new JPanel();

    b.setBounds(5, 5, 50, 50);
    b.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1, true)); …
Run Code Online (Sandbox Code Playgroud)

java swing tooltip jfreechart java-10

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

如何在jsp中使用JFreeChart显示折线图?

全部:
我使用下面的图表来显示线图.当我运行以下代码时,我正在获取窗口,但它是空白的,不显示图形.请帮助我,并告诉我如何使用下面的代码在html页面中显示线图.

import org.jfree.chart.*;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.xy.*;

public class xyLine {

    public static void main(String arg[]) {
        XYSeries series = new XYSeries("Average Weight");
        series.add(20.0, 20.0);
        series.add(40.0, 25.0);
        series.add(55.0, 50.0);
        series.add(70.0, 65.0);
        XYDataset xyDataset = new XYSeriesCollection(series);
        JFreeChart chart = ChartFactory.createXYLineChart(
            "XYLine Chart using JFreeChart", "Age", "Weight",
            xyDataset, PlotOrientation.VERTICAL, true, true, false);
        ChartFrame frame1 = new ChartFrame("XYLine Chart", chart);
        frame1.setVisible(true);
        frame1.setSize(300, 300);
    }
}
Run Code Online (Sandbox Code Playgroud)

java linegraph jfreechart

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