2009-12-29 33 views
1

我找绘制能够使用的具有不同比例超过一个或两个垂直轴,例如像工具:要使用哪种多轴多尺度绘图工具?

alt text http://www.mathworks.com/matlabcentral/fx_files/9016/1/addaxis_screenshot.jpg

的目标是绘制具有不同范围的几个时间序列在同一地块。例如,我可以有:

  • 与范围的时间序列1 [-1,1]
  • 时间序列2范围[-10,+ 10]
  • 时间与范围[0系列3, 1500]
  • 时间序列4与范围[0.5,0.9]

在理想情况下,我可以绘制在其自己的轴上的每个时间序列与它自己的范围内,如图所示在图像中。

你知道哪些工具或库可以做到这一点?

注意:这个问题与this one有关,但我正在寻找比Matlab更多的可能性。

+1

我知道matlab(addaxis),matplotlib和ZedGraph,但我没有提到R.这就是为什么接受的答案在那里。 我也建议使用JFreeChart for Java。 虽然它看起来并不像有很多选择。 – 2009-12-31 08:31:08

回答

3

您可以在R中做到这一点。一个例子见this R-wiki page

使用doubleYScale函数也可以非常容易,如in these examples

+2

维基链接被破坏,我想我已经指出它在正确的页面 – 2010-02-28 21:06:27

3

根据GNU图,你可以在每个图表的GNU图上有upto 2 axii

+1

2轴是不够的...数据的范围通常是非常不同的,我不能将它们分组在同一个轴上。 – 2009-12-29 08:35:44

+1

我的理解是,我只是说可能有一个以上但不超过两个(除非有办法手动绘制一个我不知道的) – monksy 2009-12-29 08:38:21

2

matlab能做到这一点

+1

是的,您可以使用来自Matlab File Exchange的addaxis组件,但我正在寻找更多的选择。 – 2009-12-29 08:36:50

3

敢肯定你能做到这一点在matplotlib

做不到这一点有很多的维基百科页面上的链接其他绘图库。

2

不确定这是你想要的,但ZedGraph支持多轴。它是一个.net组件,所以你必须编写一些代码才能获取数据,但它很容易使用。

0

MathGL可以与多个轴上绘制(参见this sample)。它是GPL(LGPL for core)库。

+0

感谢您的指针,但我更多地寻找两个以上的轴,分组在图的左侧或右侧。例如,左边三个轴和右边两个轴,每个轴都有自己的范围和比例。 – 2011-06-08 08:35:02

+0

实际上,MathGL也可以绘制多个轴。看到这个[示例](http://mathgl.sourceforge.net/mathgl_en/mathgl_en_96.html#g_t2_002daxes-sample)或者只是执行这个MGL脚本(通过UDAV或mgl2png,mglview等等) axis#first axis xlabel'x'0 -1:ylabel'y_1'0.2 -1 yrange -2 2:origin -1.3 0#draw other axis axis'y':ylabel'\ colorr {y_2}'0.2 -1 – abalakin 2011-06-08 10:29:35

+0

Ie ,@PabloRodriguez,你可以改变轴原点(x位置)。在此轴原点可能超出轴范围。 – abalakin 2011-06-08 10:34:34