如何JFreeChart在不断更新的时间序列中仅显示最新数据?
附录:此处显示了一个包含已接受答案的完整,有效的示例.另见具有两个系列的该变体.另见本Q&A有关setTimeBase().
有关如何为X轴和Y轴设置范围的任何建议.
我的"X轴"范围是"0.00到1.00",相差"0.05".我的意思是0.00 0.05 0.10 0.15 ..... 0.90 0.95 1.00
我的"Y轴"范围从"0.0到1.0",差异为"0.1".我的意思是0.0 0.1 0.2 0.3 0.4 ......... 0.9 1.0
我尝试过这样做,但它没有反映在图表上; 我不知道如何应用它 ChartFactory.createScatterPlot().
final NumberAxis domainAxis = new NumberAxis("X-Axis");
domainAxis.setRange(0.00,1.00);
domainAxis.setTickUnit(new NumberTickUnit(0.1));
final NumberAxis rangeAxis = new NumberAxis("Y-Axis");
rangeAxis.setRange(0.0,1.0);
rangeAxis.setTickUnit(new NumberTickUnit(0.05));
public JPanel createDemoPanel() {
XYDataset dataset1 = samplexydataset2();
JFreeChart jfreechart = ChartFactory.createScatterPlot("Scatter Plot Demo",
"X", "Y",dataset1, PlotOrientation.VERTICAL, true, true, false);
}
Run Code Online (Sandbox Code Playgroud)
对此有任何帮助都会很棒.
就像在下面的示例中所做的那样,我希望图表域上的刻度线标签旋转45度,如下图所示:http: //left.subtree.org/2007/08/14/rotate -labels-jfreechart的/
区别在于,我想在带有数字轴的散点图上执行此操作.我找不到NumberAxis类中的setCategoryLabelPositions()的等价物.
我试图在散点图图上用鼠标点击点的坐标.
单击某个点时,"单击事件!" 并在控制台上打印坐标.当您单击"测试"按钮时,"测试"并在控制台上打印坐标.
问题:单击按钮后打印的坐标是最新的.单击一个点后打印的坐标是先前选择的点之一.
我该如何解决这个问题(所以当我点击一个点时,会显示新选定点的坐标)?
package graph;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.util.Random;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
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.axis.NumberAxis;
import org.jfree.chart.axis.NumberTickUnit;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYItemRenderer;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
/**
* @see http://stackoverflow.com/questions/7231824
* @see http://stackoverflow.com/questions/7205742
* @see http://stackoverflow.com/questions/7208657
* @see http://stackoverflow.com/questions/7071057
*/
public class GraphFrameOld extends JFrame {
private static final int N = …Run Code Online (Sandbox Code Playgroud) 我需要为堆积条形图中的每个条形设置一种独特的颜色.无论我在一个栏中看到什么颜色,都不应该在任何其他栏或任何其他堆栈中重复.
例如:报告中有5个条形图.每个酒吧有3个不同的堆栈.我想将红色相关颜色应用到第一个条形图及其堆栈.第二个栏应该有蓝色相关的颜色.等.它在附图中显示.图像显示了我们想要的基本要求.刚刚使用普通的ms画笔创建. Stacked Bar MS Paint Image
我想创建类似极点/零点的极点/零点图.它用于显示IIR和FIR滤波器属性,如稳定性,类型......
我的问题是:如何为两个轴设置相同的比例(不是范围)?
我使用ScatterPlot作为图表.
JFreeChart chart = ChartFactory.createScatterPlot("Pole/zero plot", // chart
// title
"real", // x axis label
"imaginary", // y axis label
result, // data
PlotOrientation.VERTICAL, true, // include legend
true, // tooltips
false // urls
);
XYPlot plot = (XYPlot) chart.getPlot();
plot.setDomainGridlinesVisible(true);
plot.setRangeGridlinesVisible(true);
plot.setRangeGridlinePaint(Color.black);
plot.setDomainGridlinePaint(Color.black);
XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) plot.getRenderer();
renderer.setBaseItemLabelsVisible(true);
renderer.setBaseItemLabelsVisible(true, true);
plot.setDomainCrosshairVisible(true);
plot.setDomainCrosshairLockedOnData(true);
plot.setRangeCrosshairVisible(true);
plot.setRangeCrosshairLockedOnData(true);
float dash1[] = { 10.0f };
XYShapeAnnotation unitCircle = new XYShapeAnnotation(
new Ellipse2D.Double(-1, -1, 2, 2), new BasicStroke(1.0f,
BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, …Run Code Online (Sandbox Code Playgroud)