我使用JFreeChart编写了一个简单的抛物线图。
package parabolademo;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartMouseEvent;
import org.jfree.chart.ChartMouseListener;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.data.function.Function2D;
import org.jfree.data.function.PolynomialFunction2D;
import org.jfree.data.general.DatasetUtilities;
import org.jfree.data.xy.XYDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
public class ParabolaDemo extends ApplicationFrame {
/*
* @param title the frame title.
*/
public ParabolaDemo(final String title) {
super(title);
double[] a = {0.0, 0.0, 3.0};
Function2D p = new PolynomialFunction2D(a);
XYDataset dataset = DatasetUtilities.sampleFunction2D(p, -20.0, 20.0, 100, "Function");
final JFreeChart chart = ChartFactory.createXYLineChart(
"Parabola",
"X",
"Y",
dataset,
PlotOrientation.VERTICAL,
true,
true,
false
);
final ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.addChartMouseListener(new ChartMouseListener() {
@Override
public void chartMouseClicked(ChartMouseEvent cme) {
Point2D po = chartPanel.translateScreenToJava2D(cme.getTrigger().getPoint());
Rectangle2D plotArea = chartPanel.getScreenDataArea();
XYPlot plot = (XYPlot) chart.getPlot(); // your plot
double chartX = plot.getDomainAxis().java2DToValue(po.getX(), plotArea, plot.getDomainAxisEdge());
double chartY = plot.getRangeAxis().java2DToValue(po.getY(), plotArea, plot.getRangeAxisEdge());
System.out.println("Clicked!");
System.out.println("X:" + chartX + ", Y:" + chartY);
}
@Override
public void chartMouseMoved(ChartMouseEvent cme) {
}
});
chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
setContentPane(chartPanel);
}
public static void main(final String[] args) {
final ParabolaDemo demo = new ParabolaDemo("Parabola Plot Demo");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
}
如何获取功能图点的坐标(我的chartMouseListener获取窗口中任意点的坐标)?用户移动鼠标并释放鼠标按钮后如何接收点坐标?我希望单击鼠标时,绘图的点紧跟鼠标,因此将重新构建绘图(为此,有必要再次计算系数,同时要知道该坐标并采用其他任意两个坐标)。怎么做?如何用新系数重建图?
给定一个ChartMouseEvent
名为cmd
,忽略任何类型的实体 其他 比XYItemEntity
。知道实体后,请勿插值-
只需查询数据集即可。
ChartEntity ce = cme.getEntity();
if (ce instanceof XYItemEntity) {
XYItemEntity e = (XYItemEntity) ce;
XYDataset d = e.getDataset();
int s = e.getSeriesIndex();
int i = e.getItem();
System.out.println("X:" + d.getX(s, i) + ", Y:" + d.getY(s, i));
}
还可以考虑调用setBaseShapesVisible(true)
绘图的渲染器。
我使用JFreeChart编写了一个简单的抛物线图。 } 如何获得函数绘图点的坐标(我的chartMouseListener获得窗口中任意点的坐标)?如何接收点坐标后,用户移动鼠标和释放鼠标按钮?我希望当点击鼠标,点的曲线跟随鼠标,这样的曲线将被重建(为此目的,有必要再次计算系数,知道这个坐标和采取任何2个其他坐标)。怎么做?如何用新系数重建图?
我使用的是JFreeChart,我希望有一个只有一个维度的图表:一个X轴(表示毫秒)和形状(表示事件)。 我创建了一个XYLineChart和一个带有隐藏y轴的XYPlot: 在数据集中,我使用了一个固定的y坐标。 显然,如果存在另一种适当的图表类型会更好。 多谢.
到这时,我们算搭建了一个简单的REST服务了。接着我们可以简单的做一个最小的物联网系统,将我们的单片机、MCU等等连上网。 硬件结构图 考虑到如果我们只是单一连接各个节点,那么系统的结构图,同下所示 全连接 下面的星形结构图类似于我们在接下来所要构建的系统 星形结构图 一个用于控制真实电器的硬件实物图 简单实物图 18.1 硬件通信 18.1.1 串口通信 Arduino与Raspberry Pi
本文向大家介绍JFreeChart简单实现光滑曲线绘制,包括了JFreeChart简单实现光滑曲线绘制的使用技巧和注意事项,需要的朋友参考一下 用JFreeChart绘制光滑曲线,利用最小二乘法数学原理计算,供大家参考,具体内容如下 绘制图形: 代码: FittingCurve.java 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
问题内容: 我尝试在图表中表示的数据通常会显示沿底部或x轴的时间戳记(日期和时间)以及各种数据(将来将始终是简单的整数或可能是浮点数据)在左轴上显示。基本上,它将沿着底部映射事件,例如沿左侧映射性能。 我正在使用JFreeChart,但是不幸的是,不存在对开发人员的支持,因此我不会为他们的教程付费。我马上就可以看到许多可以使用的图表类型,这篇文章要求我使用最合适的集合和图表对象。 最初,我使用XY
主要内容:什么是JFreeChart 折线图,JFreeChart 折线图的示例什么是JFreeChart 折线图 折线图是由直线段连接的一系列点。信息通过这些连接线显示。折线图表示数据如何以相同的时间频率变化。 下图显示了 JFreeChart 库中包含的折线图的一些演示版本: JFreeChart 折线图的示例 让我们考虑一个示例数据,它显示了我们网站www.xnip.cn上的流量数据。 日期 每日访客人数 2016-12-19 200 2016-12-20 150 20