我正在关注this example以生成热图。是否可以在X轴上重新标记值,并为其添加常量。
而不是x轴上的0,1,2,3,4,我希望有,例如,5,6,7,8,9。
答案 0 :(得分:1)
您可以在extent
的调用中使用关键字参数imshow
来标记x和y轴。这是一些文档,
extent : scalars (left, right, bottom, top), optional, default: None
Data limits for the axes. The default assigns zero-based row,
column indices to the `x`, `y` centers of the pixels.
使用您链接的示例,您可以执行以下操作,
from pylab import *
A = rand(5,5)
figure(1)
imshow(A, interpolation='nearest')
grid(True)
left = 4.5
right = 9.5
bottom = 4.5
top = -0.5
extent = [left, right, bottom, top]
figure(2)
imshow(A, interpolation='nearest', extent=extent)
grid(True)
show()
这将仅更改x轴标签。请注意,您必须考虑以下事实:默认标记像素,而extent
标记整个轴(因此因子为0.5)。另请注意,imshow
中y轴的默认标注从顶部到底部(从顶部的0到底部的4)增加,这意味着我们的bottom
将大于我们的top
{1}}变量。
答案 1 :(得分:0)
您可以通过for-loop或list comprehension简单地添加常量,并将其用作新的轴标签,例如:
import matplotlib.pyplot as plt
CONST = 10
x = range(10)
y = range(10)
labels = [i+CONST for i in x]
fig, ax = plt.subplots()
plt.plot(x, y)
plt.xlabel('x-value + 10')
# set custom tick labels
ax.set_xticklabels(labels)
plt.show()
我将其添加到matplotlib gallery in IPython notebooks这里,并附上其他示例,如果有用的话:
答案 2 :(得分:0)
如果你只想重新标记当前的情节(点击它以选择它),你可以使用xticks()
功能(注意arange()
上限需要比所需的最大值多一个) - 例如来自iPython / Python:
xticks(arange(0,5),arange(5,10))
如果你想修改python脚本文件,那么你可以使用:
plt.xticks(arange(0,5),arange(5,10))