【问题标题】:Trouble plotting 2d contourf and 3d data using pd.DataFrames python使用 pd.DataFrames python 绘制 2d contourf 和 3d 数据时遇到问题
【发布时间】:2018-10-26 10:14:48
【问题描述】:

我目前正在尝试生成我所做的实验的数据,其中涉及 xy 扫描文件,然后将它们绘制为时间的函数。我设法将它们放入形状为 (1027,281) 的 pandas DataFrame 中,x 轴作为索引,时间作为列标签,扫描的值作为 df 中的值。等高线图如下所示。

y = dftest.index.values
x = dftest.columns.values
z = dftest.values
X,Y = np.meshgrid(x,y)
z2 = np.ma.array(z)
z2_masked = np.ma.masked_where(z2 > 300, z2)
z2_masked = np.ma.masked_where(z2_masked < -5, z2_masked)
z3 = np.ma.filled(z2_masked, fill_value = 0)
plt.contourf(X, Y ,z3, 20, cmap = 'jet')
plt.colorbar()
plt.xlim(xmax = 175000)
plt.xticks(np.arange(0, 175000, step=50000))

时间分辨 PXRD,x 轴 = 时间,y = 衍射角:

首先,这会产生一些错误的东西,我希望扫描文件的 x 值是 x 轴,但它是 y 轴。然后我想找到一种将其绘制为 3d 等高线图或曲面的简单方法。我认为我的问题在于数据的形状,但我不确定如何纠正它。

我的每个 DataFrame 看起来像这样:

           0.0       646.0       ...      181742.0   182390.0
x                                ...                         
0.996522   7.301625  3.914700    ...      8.224773   9.885618
1.000432  10.722788  7.379380    ...      8.474020  19.229299
1.004341   0.079724  5.567879    ...     -0.143427   2.684953
1.008251   4.738650  3.903460    ...     -1.162278   3.809588
1.012161   6.213206 -0.318955    ...      4.050190   1.454264
            ...       ...    ...           ...        ...
4.992126  -2.956039 -4.475446    ...     -2.816053  -4.556231
4.996036  -1.105434  1.274342    ...     -1.393612  -4.338330
4.999945  -0.536215  2.073975    ...     -2.727332  -1.083154
5.003855   5.983973  6.983155    ...      1.188320   3.657221
5.007765  -3.638785 -1.548692    ...     -5.225328  -2.164280

[1027 rows x 281 columns]

【问题讨论】:

标签: python pandas matplotlib contourf


【解决方案1】:

要生成您的等高线图(为简单起见忽略遮罩),这不起作用吗?

x = dftest.index.values
y = dftest.columns.values
z = dftest.values
X,Y = np.meshgrid(x,y)
Z = z.T
plt.contourf(X,Y,Z,20,cmap='jet')
plt.colorbar()
plt.show()

【讨论】:

  • 这样就整理出了contourf plot和3d plot。什么是:'Z = z.T'?那是转置吗?非常感谢您的帮助
  • 是的,z.T 只是简单地转置了数组,这样形状就一致了。
猜你喜欢
  • 2022-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多