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