[英]How do I set tick units on domain axis after getting it from range axis in a jfreechart in java?
[英]java JFreeChart how do I use renderers to set different paints
我有一个系列的XYAreaChart
final JFreeChart chart = ChartFactory.createXYAreaChart(
"",
"", "Rolling",
dataset,
PlotOrientation.VERTICAL,
false, // legend
true, // tool tips
false // URLs
);
final XYPlot plot = chart.getXYPlot();
我想将RangeValue> 0时的油漆颜色设置为红色,否则将其设置为绿色。 这是我能找到的最接近的代码,但我认为它适用于两个系列:
plot.setRenderer(new XYDifferenceRenderer(Color.green, Color.red, false));
同一系列我需要哪个渲染器?
这可能会为您提供帮助。 下面的示例显示了JFreechart教程中的基本图表。 我在您的示例中添加了渲染器,我的理论是,当您拥有1个系列时,“第二系列”实际上是0。因此,当您应用两个系列渲染器时,如果第一个系列的值降到0以下,它将变为负色,当它大于0时将成为正色。
当我打开保存的图表时,它的负号上有红色,正值上有绿色。 看看是否有帮助:
public class SO{
public static void main(String[] args) {
// Create a simple XY chart
XYSeries series = new XYSeries("Gradient logs chopped");
series.add(1, -7);
series.add(2, -2);
series.add(3, 4);
series.add(4, 7);
series.add(5, 10);
// Add the series to your data set
XYSeriesCollection dataset = new XYSeriesCollection();
dataset.addSeries(series);
// Generate the graph
JFreeChart chart = ChartFactory.createXYLineChart(
"Logs chopped", // Title
"Week", // x-axis Label
"Logs", // y-axis Label
dataset, // Dataset
PlotOrientation.VERTICAL, // Plot Orientation
true, // Show Legend
true, // Use tooltips
false // Configure chart to generate URLs?
);
//The renderer part
XYPlot plot = chart.getXYPlot();
XYDifferenceRenderer rend = new XYDifferenceRenderer(Color.GREEN, Color.RED, false);
rend.setSeriesFillPaint(0, Color.DARK_GRAY);
rend.setRoundXCoordinates(true);
plot.setRenderer(rend);
//The renderer part
try {
ChartUtilities.saveChartAsJPEG(new File("D:\\Users\\user2777005\\Desktop\\XYchart.jpg"), chart, 500, 300);
} catch (IOException e) {
System.err.println("Problem occurred creating chart.");
}
}
}
祝好运!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.