Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用';实际值';在python的imshow中_Python_Pandas_Matplotlib_Imshow - Fatal编程技术网

使用';实际值';在python的imshow中

使用';实际值';在python的imshow中,python,pandas,matplotlib,imshow,Python,Pandas,Matplotlib,Imshow,我想使用imshow()模块绘制一张热图,但是我很难让它以我想要的方式工作。我的数据存储在数据框中,数据框由100-1000列组成,每列有201行。每列中的第一行是我希望在x轴上使用的值,而剩余的200行是要在imshow绘图中使用的数据点 以下是我的数据帧的结构(值最终从0.0000增加): 第一列只是一个介于0-200之间的计数器-我通常在加载数据时删除它,因为它与行索引相同。我目前的问题是在绘图中,当我使用imshow()绘制我的图形时,它使用行和列索引作为轴刻度。这对于Y轴很好,因为它

我想使用
imshow()
模块绘制一张热图,但是我很难让它以我想要的方式工作。我的数据存储在数据框中,数据框由100-1000列组成,每列有201行。每列中的第一行是我希望在x轴上使用的值,而剩余的200行是要在
imshow
绘图中使用的数据点

以下是我的数据帧的结构(值最终从0.0000增加):

第一列只是一个介于0-200之间的计数器-我通常在加载数据时删除它,因为它与行索引相同。我目前的问题是在绘图中,当我使用
imshow()
绘制我的图形时,它使用行和列索引作为轴刻度。这对于Y轴很好,因为它与第0列中的值相同;问题在于X轴的索引值在1-1000之间,而我想用X的实际值(即381.3、393.3、200.6等)将其绘制在轴上。我怎样才能做到呢

目前我得到的是:

以下是我目前使用的代码:

rawData = pd.read_csv('heme_mpc_drift2.csv', delimiter=',')
rawData_drop=rawData.drop(rawData[[101,102]], axis=1, inplace=False)
xaxis = rawData_drop.ix[0,1:]
yaxis = rawData_drop.ix[1:,0]
plt.figure(figsize=[10,5])
plt.ylim([200,0])
plt.imshow(rawData_drop, cmap=cmaps.plasma, interpolation="none", aspect='auto', vmax=500000)
plt.colorbar()
plt.show()
我希望在
imshow()
中的某个地方使用
xaxis
yaxis
,但是我还没有弄清楚在哪里。我曾尝试在
imshow()
中使用
extent
,但它仅将1-100范围内的值转换为我给定的任何新范围

如果有任何建议,我将不胜感激

编辑1: 添加了一个我正在寻找的示例:

它与
imshow
无关,只需在
plt
对象上调用
xticks

plt.xticks(range(len(xaxis)), xaxis, size='small')
更新 为了使您的x轴也与值成比例,同时每个观察值只是一个点,我建议根本不要使用imshow。您正在查找的图实际上是一个散点图,因为与整个图像相比,您的数据点非常少。Imshow通常用于密集绘图


plt.scatter
一旦输入x值,显然会自行缩放。您也可以将其设置为黑色背景等。事实上,您包含的示例看起来像是带有像素宽标记的散点图。

谢谢您的回复。也许我在问题中没有说清楚。我不仅希望在x轴上有记号标签,还希望在值w.r.t x值之间有间隔。目前,这些值是相邻绘制的(1个单位的间隔),而我希望它们取实际位置(即381.3393.3200.6等)。我不认为可以将其绘制为
plt。散射
,因为我必须使用1-200(第一列)之间的值作为y轴,使用1-1500(第一行)之间的值作为我的x轴;然后,绘图将丢失有关
x,y
值的强度的所有信息。我想它不一定非得是
imshow
,但也可以是
hist2d
tourf
绘图。在散点中有x、y和颜色,因此有3个值要处理,方法与这里完全相同。