Python 为什么不是';我的数据打印到我的pcolor打印吗?

Python 为什么不是';我的数据打印到我的pcolor打印吗?,python,pandas,matplotlib,Python,Pandas,Matplotlib,我试图将我的csv数据提供给pcolor或pcolormesh绘图,但由于某些原因,它没有绘图。我没有得到任何错误,所以我不知道为什么它不会被标绘。X轴、Y轴和颜色栏比例都显示正确。我的“强度”数据集的值介于0和1之间。我是python新手,所以任何指导都将非常有用 import matplotlib.pyplot as plt import pandas as pd df=pd.read_csv('mycsv3.csv') a=df['X'].values b=df['Y'].values c

我试图将我的csv数据提供给pcolor或pcolormesh绘图,但由于某些原因,它没有绘图。我没有得到任何错误,所以我不知道为什么它不会被标绘。X轴、Y轴和颜色栏比例都显示正确。我的“强度”数据集的值介于0和1之间。我是python新手,所以任何指导都将非常有用

import matplotlib.pyplot as plt
import pandas as pd
df=pd.read_csv('mycsv3.csv')
a=df['X'].values
b=df['Y'].values
c=df['Intensity'].values
cb=plt.pcolor([a],[b],[c],cmap=plt.cm.jet)
plt.title('Pupil Image')
plt.colorbar()
plt.show()
我试图通过添加一条额外的线将强度数据重塑为X和Y: c=df[‘强度’]。值。重塑(a,b) 但是得到了一个“TypeError:只有整数标量数组才能转换为标量索引”


今天早些时候,我问过如何使用具有类似结构的数据来实现类似的目标,我建议您可以采用相同的方法

编辑:我对解决方案做了一些修改,我创建了一个小数据表以供演示

-1 -1 .2
-1  0 .5
-1  1 .9
-1  2 .7
0  -1  0
0   0 .8
0   1 .1
0   2 .9
1  -1 .5
1   0 .4
1   1 .6
1   2 .7
解决方案 输出


我的解决方案的一个缺点是,它还通过imshow更改为绘图。这假设采样率相等。另外,请注意,我翻转了原点以进行匹配,以更紧密地匹配此数据,作为如何进行匹配的示例。

要获得强度,您应该选择不同的颜色贴图,正如
jet
所做的那样。您可能需要
plt.pcolor(a.reformate(M,N),b.reformate(M,N),c.reformate(M,N))
使用
M
N
正确的网格尺寸。假设数据来自规则网格。
import matplotlib.pyplot as plt
import pandas as pd

header = ['X', 'Y', 'Intensity']
df_demo = pd.read_csv('democsv.csv')
df_demo.columns = header

df_pivot = df_demo.pivot(columns='X', index = 'Y', values='Intensity')
plt.imshow(df_pivot, extent =[-1, 1, -1, 2], origin = 'lower', cmap=plt.cm.jet)
plt.colorbar()