关于绘制3个1维变量的建议

时间:2013-07-02 16:02:07

标签: matlab matplotlib plot graphing

我已经在我的软件定义无线电上读取了数据。我有三个数量,频率,功率和错误率。我想在我的x轴上保持频率,因为后者的数量是相对于频率测量的。现在我需要将它们绘制在一条曲线上,以便我可以在一次拍摄中看到频率与功率和频率与误差率。我一直在看matplotlib很长一段时间,但我看到了3D散点图,它们似乎没有传达我想要的图片。所以我的问题是

  1. 在我的情况下,3d绘图是无用的,我最好绘制2个图形并将两个图形的y轴连接在一起,这样我就可以看到两个图形在彼此之上。

  2. 在python或matlab中是否存在绘制三维曲线的方法,然后如果移动光标,则可以看到频率与功率的关系,如果移动光标,则可以通过另一种方式查看频率与错误率

  3. 关于如何更好地表达我的阅读材料的任何其他想法都会有所帮助。

1 个答案:

答案 0 :(得分:1)

当两组数据共享相同的因变量(x轴)时,至少在科学文献中通常以下列方式绘制它们以节省空间:

Example

这对于缠绕x轴而言是首选,这可能会导致某些人混淆。如果要比较功能,它的效果尤其好。

该图使用以下方式生成:

import pylab as py

x = py.linspace(0,10,1000)
y = py.sin(x) 
z = py.sinc(x)

ax1 = py.subplot(211)
ax1.plot(x,y)
ax1.set_xticklabels([])  # Remove the xticks from the top figure
ax1.set_yticks(ax1.get_yticks()[1:]) # Stops the y axis overlapping

ax2 = py.subplot(212)
ax2.plot(x,z)

py.subplots_adjust(hspace=0.0)

py.show()

我相信有一种更好的方法可以移除xticklabels,但我现在还记不住了。小心不要只是py.set_xticks([]),就好像你要求网格顶部的图没有ticks