当前位置: 首页 > 知识库问答 >
问题:

用jFreeChart绘制磁滞回线

颛孙星海
2023-03-14

我需要绘制磁滞回线,然后计算回线内闭合的面积。我正在使用JFreeChart。

考虑以下数据:

 hyst[0]=0;
       hyst[1]=0;
       hyst[2]=0.0098;
       hyst[3]=0.0196;
       hyst[4]=0.0489;
       hyst[5]=0.0879;
       hyst[6]=0.0684;
       hyst[7]=0.0489;
       hyst[8]=0.0196;
       hyst[9]=0.0098;
       hyst[10]=0;
       hyst[11]=0;
       hyst[12]=0;
       hyst[13]=0;
       hyst[14]=0;
       hyst[15]=-0.0195;
       hyst[16]=-0.0488;
       hyst[17]=-0.0391;
       hyst[18]=-0.0195;
       hyst[19]=0;
       hyst[20]=0;

当我尝试:

   public void plotHysteresis()
   {
       int j=0;
       int i=0;
       XYSeries series1 = new XYSeries("Before Treatment");
      // DefaultCategoryDataset series1 = new DefaultCategoryDataset();
       for(i=0;i<6;i++)
       {    
        series1.add(j,hyst[i]);
        logTextArea.append(Integer.toString(j) +" : " +Double.toString(hyst[i])+"\n");
        j=j+5;
       }
       j=j-5; 
       for(;i<11;i++)
       {
        j=j-5;   
        series1.add(j,hyst[i]);
        logTextArea.append(Integer.toString(j) +" : " +Double.toString(hyst[i])+"\n");
       }
        for(;i<16;i++)
       {
        j=j-5;   
        series1.add(j,hyst[i]);
        logTextArea.append(Integer.toString(j) +" : " +Double.toString(hyst[i])+"\n");
       }
           for(;i<21;i++)
       {
        j=j+5;   
        series1.add(j,hyst[i]);
        logTextArea.append(Integer.toString(j) +" : " +Double.toString(hyst[i])+"\n");
       }

    XYSeriesCollection dataset = new XYSeriesCollection();
    dataset.addSeries(series1);

    JFreeChart chart = ChartFactory.createXYAreaChart(
"Hysteresis Plot", // chart title
"Pounds (lb)", // x axis label
"Distance (inches)", // y axis label
dataset, // data
PlotOrientation.VERTICAL,
true, // include legend
true, // tooltips
false // urls
);
    chart.setBackgroundPaint(Color.white);

    ChartPanel frame = new ChartPanel(chart);
    frame.setVisible(true);
    frame.setSize(plotPanel.getWidth(),plotPanel.getHeight());
    plotPanel.add(frame);
    plotPanel.repaint();
   }

 JFreeChart chart = ChartFactory.createXYLineChart(
"Hysteresis Plot", // chart title
"Pounds (lb)", // x axis label
"Distance (inches)", // y axis label
dataset, // data
PlotOrientation.VERTICAL,
true, // include legend
true, // tooltips
false // urls
);

我想区别在于点的连接方式。请指导如何用jFreeChart获得所需的磁滞回线,然后如何计算封闭面积。

谢谢

共有1个答案

夹谷琨
2023-03-14

如何更改线条颜色以及表示数据点的符号。我希望他们都是统一的。

您似乎已经选择JFreeChart作为视图。综合其他一些评论,

>

  • 您可以通过提供drawingsupplier,使您的几个系列的颜色和形状均匀一致,如下所示。

  •  类似资料:
    • 我用JFreeChart来表示我的x和y数组。这些数组被绘制得很好,但是回归线被破坏了,永远也不会被绘制出来。除了和函数之外,所有函数都可以工作,例如打印值。不知怎的,这两个都不起作用。我不太介意,但我喜欢能够。我的阵列具有正确的数据,因此不确定问题出在哪里。我正在函数中将数组数据导入数据集。我的具有和阵列。它们有和数据类型。

    • 我想用Python或Matlab在极坐标网格上绘制多个磁滞回线(如下图所示,摘自一篇论文)。我知道如何在matlab中使用极坐标图函数,但我正在努力解决这个问题,尤其是重新调整磁滞回线的大小以及如何定义θ

    • 你好,我必须做一个程序来显示功率曲线,因此我需要在一个窗口上显示三个不同的图。不同类型的图是XY(只是点)、条形图和带线的XY图。

    • 本文向大家介绍JFreeChart简单实现光滑曲线绘制,包括了JFreeChart简单实现光滑曲线绘制的使用技巧和注意事项,需要的朋友参考一下 用JFreeChart绘制光滑曲线,利用最小二乘法数学原理计算,供大家参考,具体内容如下 绘制图形:   代码: FittingCurve.java 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

    • 我想画一些垂直线来跟踪任务,如下图中的红线所示。我相信可以使用甘特图绘制器绘制线条。 我想要的是在绘制任务期间存储直线endpoint的坐标,然后最终在绘图中绘制这些直线。 我想知道是否有一种方法可以让你在绘图上绘制任何东西,以及这是否是解决这个问题的正确方法。 以下是我的甘特图渲染器代码: 更新: 似乎LineAnnotics是实现这些行的最佳方式。Link1

    • 有人知道如何在甘特图中的特定位置移动/绘制虚线吗?例如,我有这样的图表: 链接到图像 很难看到任务1和任务2以及任务3在哪里。 如果可能的话,画水平线不是在1,2,3线,而是在整个系列之后,以明确视觉分隔符。 谢谢