Python Matplotlib,作为颜色栏颜色的第三组值

Python Matplotlib,作为颜色栏颜色的第三组值,python,matplotlib,Python,Matplotlib,我有三组值。就像我有x-y坐标平面,它构成了前两组值。我已经把平面区域划分成单位大小的小正方形,或者特别是一些大小的正方形。然后我有另一个二维数组,它包含对应于每个正方形或小区域的值 现在,问题是: 我可以使用颜色条将二维数组绘制为颜色点,但是x轴和y轴分别显示列和行的索引!相反,我希望显示x和y坐标。我尝试了很多次搜索,但没有找到解决方案 它类似于。只是我想要一组x-y坐标值,而不是显示的行和列值 请帮忙。如果需要,可以通过评论而不是投票来提出改进建议。这是非常令人沮丧的 编辑: 根据提供的答

我有三组值。就像我有x-y坐标平面,它构成了前两组值。我已经把平面区域划分成单位大小的小正方形,或者特别是一些大小的正方形。然后我有另一个二维数组,它包含对应于每个正方形或小区域的

现在,问题是:

我可以使用颜色条将二维数组绘制为颜色点,但是x轴和y轴分别显示列和行的索引!相反,我希望显示x和y坐标。我尝试了很多次搜索,但没有找到解决方案

它类似于。只是我想要一组x-y坐标值,而不是显示的行和列值

请帮忙。如果需要,可以通过评论而不是投票来提出改进建议。这是非常令人沮丧的

编辑:

根据提供的答案,我得到了这个 .


相反,我应该得到这样的数字。当然,轴与上图相同,但与下图不同。

如果您想要与链接到的
imshow
示例类似,但坐标轴不同,您可能需要使用
imshow
范围
关键字:

import numpy as np
import matplotlib.pyplot as plt

# some random data (10x10)
image = np.random.uniform(size=(10, 10))

plt.figure()

# draw the pixel image
#   interpolation='nearest': draw blocky pixels, do not smooth
#   cmap=pl.cm.gray: use gray scale colormap (autoscale, no vmin or vmax defined
#   origin='lower': draw first row of the array to the bottom if the image
#   extent=[-3,3,-10,10]: draw the image so that it covers area (-3,-10)..(3,10)
plt.imshow(image, cmap=plt.cm.gray, interpolation='nearest', origin='lower', extent=[-3,3,-10,10])

# this is needed to make the pixels non-square if needed
plt.axis('normal')

plt.colorbar()

plt.show()
通过这种方式,您可以创建大小完全符合您需要的“像素”:

当然,如果需要,您可以使用
plot
或其他方法在同一个绘图上绘制更多信息

图像
这里是一个标量数组,颜色由
cmap
定义,但如果您想进行更奇特的着色,它也可能是一个RGB或RGBA值数组。例如:


如果您希望在地图中有透明区域,请将
nan
值放入
image

中,这不就是为什么吗?请给出一个示例。我真的不喜欢像你提供的链接中那样写的文档。。请不要在评论中举例说明。但是,如果您在问题中提供了
X
Y
C
的示例,并具体描述了这些值的期望结果,那么我或其他人可能能够提供更自信的答案。好的。我在上面。但是,你能帮助我如何在这里给出50*50值的数组吗?我应该使用或遵循什么链接?@MycrofD:这可能是你做事的顺序问题。首先
imshow
然后
axis('normal')
,然后才
colorbar
。请看下面编辑的示例代码。如果你不能让它工作,请显示代码。几乎得到了我需要的。。但现在,y轴缩小了。如何拉长它?我的意思是x从4到22不等。y在-75到-70.5之间变化。所以问题是它看起来像一个矩形,图形沿着垂直轴(即y轴)挤压。@MycrofD:extent关键字给出了绘图区域坐标中图像的大小。记住给出
plt.axis('normal')
,然后您可以通过
plt.axis([-100100,-50,50])
或您想要的任何范围来缩放轴范围。非常感谢。感谢您和@Lev Levitsky的快速回复。:)我使用的是cbar.ax.set_ylabel('something')。它不起作用。我不能给颜色条贴标签。Help plz..@MycrofD:您确定要为颜色栏设置Y标签吗?这在
ax.set\u ylabel
上运行良好。但是,如果要手动设置Y轴刻度标签,则需要
get_yticks()。要设置_list()
,请编辑列表并
set_yticklabels
。该过程有几个问题,请参见: