我希望能够设置每个点的颜色(由x和y处理,其中x是一个DateTime(实际上是joda-time),y是一个双倍)在图表上表示az = f(x,y) )价值.JFreeChart可以吗?
I'm using JFreeChart to create a chart that has 6 TimeSeries in it.
Problem: When I call .clear()
on one of those series all others get hidden:
this.Series1.clear();
Run Code Online (Sandbox Code Playgroud)
Question: What should I do to clear a series without others disappear?
Before calling .clear()
on the "Red" series.
After calling .clear()
on the "Red" series.
当我创建一个需要带周周期的轴的图表时,我遇到了这个问题.
当我设置勾选单位DateAxis
时new DateTickUnit(DateTickUnitType.Day, 7)
,它每7天显示一次勾号.但是,刻度标记的日期不是从一周的第一天开始.您可以在屏幕截图中观察此行为.
青色线05-01 w18(May. 1, Week 18)
低于w18(Week 18)
刻度线,这是因为刻度线的日期w18
实际上是5月2日,即星期三.
这使得图表看起来不正确,因为人们倾向于认为每个刻度被认为是本周的开始.
在检查源代码后,我发现DateAxis
剂量不支持这种行为一周(无论如何都没有周类型).
我不能创建另一个,DateTickUnitType
因为私有构造函数和correctTickDateForPosition()
方法DateAxis
也是私有的.我试图覆盖nextStandardDate()
但没有满足结果出来.
如何DateAxis
从一周的第一天开始绘制刻度线?
这是截图和示例代码
需要JFreeChart/JCommon
public class Main extends ApplicationFrame {
public Main (String title) throws ParseException {
super(title);
JPanel chartPanel = createDemoPanel();
chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));
setContentPane(chartPanel);
}
private static JFreeChart createChart(XYDataset dataset) {
JFreeChart chart = ChartFactory.createXYLineChart("Week period in DateAxis", "X", "Y",
dataset, PlotOrientation.VERTICAL, true, true, …
Run Code Online (Sandbox Code Playgroud) 我有一个传统的Java swing应用程序(扩展JFrame并有一个主类),它使用JFreeCharts来实现某些图表功能.我最近看过JavaFX并认为这些图表看起来很多,并且会给我的用户带来更好的体验.我希望将JavaFX图表场景嵌入到jInternalFrame中(后者又从我的jDesktopPane中调用).
我已经遵循了一个关于如何创建javafx应用程序和javafx图表的简单教程,但我仍然坚持如何在现有代码中获取场景.我经历过的一个例子向我展示了如何实现这一目标,但意味着将我的项目转换为扩展"application"类的javafx项目.
我怎样才能实现我的目标?是不是可以将我现有的JFrame保留为顶级类,只需将JFXPanel添加到我的jinternalframe即可.
任何帮助都会很棒,请注意我已经完成了一些教程,他们要求我将我的项目转换为javafx - 我只想在我现有的swing应用程序中使用javafx场景.
非常感谢,
是否可以设置绘制渲染器(层)的顺序或请求在某些渲染器上“置于前面”?
当您将区域与线条组合并且希望线条始终“位于顶部”时,此类功能将非常有用。
CandlestickRenderer 类中有一些方法可以将所有蜡烛的边框颜色更改为所需的颜色,但我需要将所有向上蜡烛边框设置为绿色,将所有向下蜡烛边框设置为红色。非常感谢任何建议或示例代码。
我想制作两个如下所示的环形图:
但是 RingPlot 似乎不是很可定制。我能想到的最好的办法是:
有机会用 JFreeChart 做我想做的事吗?
我正在使用 jfreechart 绘制折线图,我需要从上到下绘制线...。意思是:0,0 坐标将在左上角。当我使用 'CategoryPlot' 时我能够做到这一点,只是通过更改 'PlotOrientation' 但左边的标签变得重叠......无论如何,我更喜欢 'xyplot'
更改“setInverted”或“setDomainAxisLocation”没有帮助
任何帮助将不胜感激
更新:为了更清晰,我正在重新发布我的代码(图表绘制部分)
在第一个代码中:我得到了需要的输出,如这里所示 http://i58.tinypic.com/r1fr01.jpg 只是通过在这部分传递 'PlotOrientation.HORIZONTAL',我使用的是 'CategoryPlot'
import java.awt.*;
import javax.swing.JPanel;
import org.jfree.chart.*;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.*;
public class PCategory extends ApplicationFrame
{
public PCategory(String s)
{
super(s);
JPanel jpanel = createDemoPanel();
jpanel.setPreferredSize(new Dimension(300, 200));
setContentPane(jpanel);
}
private static CategoryDataset createDataset()
{
DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
defaultcategorydataset.addValue(0,"Pixels", Integer.toString(0));
defaultcategorydataset.addValue(2,"Pixels", Integer.toString(1));
defaultcategorydataset.addValue(5,"Pixels", Integer.toString(2));
defaultcategorydataset.addValue(10,"Pixels", Integer.toString(3));
defaultcategorydataset.addValue(7,"Pixels", Integer.toString(4));
defaultcategorydataset.addValue(8,"Pixels", Integer.toString(5));
return …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 using 创建一些数据的缩略图图表JScrollPane
,但遇到性能困难。此示例有大约 100 个缩略图,每个缩略图有 5000 个样本。当我尝试向下滚动并返回向上多次时,滚动会出现延迟,CPU 负载增加,应用程序内存使用量达到超过 500 Mb。
有没有办法在不减少数据的情况下避免此性能问题?
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.GridLayout;
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.ThermometerPlot;
import org.jfree.data.general.DefaultValueDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
public class ThumbnailChartsTest extends JPanel {
private static final int W = 200;
private static final int H = W;
private static final int N = 5000;
private static final Random random = new Random();
private static …
Run Code Online (Sandbox Code Playgroud) 我正在使用 JFreeChart 库创建烛台图表。我需要将时间值传递给 OHLCSeries,但它只接受自己的时间值
我要通过这个类https://www.jfree.org/jfreechart/api/javadoc/org/jfree/data/time/Hour.html
而这个构造函数: Hour(int hour, int day, int month, int year)
我从 API 中获得的数据最初是这样的:2021-03-02T16:00:00.000Z
我的问题:如何将此日期字符串/Java 时间格式转换为 JFreeChart 的日期格式?我只能考虑一些复杂的转换成Java类型+分别返回每个值,或者使用正则表达式
jfreechart ×10
java ×9
swing ×2
charts ×1
date-format ×1
datetime ×1
java-time ×1
javafx ×1
jscrollpane ×1
linechart ×1
scala ×1
thumbnails ×1
time-series ×1