【发布时间】:2018-12-05 22:05:39
【问题描述】:
我正在尝试在 java 中获得在 polar() 函数上添加的 matlab Pcolor 的等价物。
我对这门语言还很陌生,但已经设法获得了一个极坐标图,代码如下:
public class Polar extends JFrame {
public Polar(double[][] vec){
XYDataset dataset = getXYDataset(vec);
JFreeChart chart = ChartFactory.createPolarChart("test", dataset, true, true, true);
PolarPlot plot = (PolarPlot) chart.getPlot();
DefaultPolarItemRenderer render = (DefaultPolarItemRenderer)
plot.getRenderer();
render.setFillComposite(...);
render.setSeriesFilled(0,true);
ChartPanel panel = new ChartPanel(chart);
panel.setMouseZoomable(false);
setContentPane(panel);
}
private XYDataset getXYDataset(double[][] vec){
XYSeriesCollection dataset = new XYSeriesCollection();
XYSeries faultDP =new XYSeries("Serie1");
for(int i = 0; i<vec.length; i++){
faultDP.add(vec[i][1],vec[i][0]);
}
dataset.addSeries(faultDP);
return dataset;
}
}
数组 vec 包含我的变量的速度和角度,应该绘制在极坐标图上。这很好用。
下一步是传递一个新变量,一个尺寸为 90x360 的 double[][] 向量。每个单元格都应该用背景颜色值绘制在极坐标图上,有点像下图。
你知道怎么做吗?
干杯, 弗洛尔
【问题讨论】:
-
我是这样看的,只是对如何实现它感到很困惑。
-
可能是
PaintScaleLegend,对于example。 -
之前也看过那个例子。这是一个很好的,我只是想知道如何在我的情况下显示我的颜色图。对不起,我真的是java新手......
-
Si 我尝试使用
PainScaleLegend类,但是当我尝试在极坐标渲染器上使用它时,我需要将SpectrumPaintScale ps转换为 Paint 对象 (r.setPaintScale((Paint)ps);) ,以获得我的代码编译了,即使这样,它也不起作用。我正在取得进展,但还没有完全达到。 -
作为参考,这里还有几个
PolarPlotexamples,但您可能需要查看自定义极坐标图,它可以按照您需要的方式呈现合适的XYZDataset。抱歉,除了jfreechart 本身,我不知道任何其他示例。
标签: java jfreechart colormap