我如何绘制一些数据,删除该数据创建的轴,并用不同比例的轴替换它们?
说我有类似的东西:
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
plt.xlim([0,5])
plt.ylim([0,5])
plt.plot([0,1,2,3,4,5])
plt.show()
这绘制了5x5图中的一条线,两个轴的范围从0到5。我想删除0到5轴,然后用-25到25轴替换它。这只会改变轴,但我不想移动任何数据,也就是说,它看起来与原始绘图只有不同的轴相同。我意识到这可以通过移动数据来完成,但我不想改变数据。
答案 0 :(得分:5)
您可以使用plt.xticks
查找标签的位置,然后将标签设置为位置值的5倍。基础数据不会改变;只有标签。
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
plt.xlim([0,5])
plt.ylim([0,5])
plt.plot([0,1,2,3,4,5])
locs, labels = plt.xticks()
labels = [float(item)*5 for item in locs]
plt.xticks(locs, labels)
plt.show()
产量
或者,您可以更改自动收报机格式化程序:
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
N = 128
fig = plt.figure()
ax = fig.add_subplot(111)
plt.plot(range(N+1))
plt.xlim([0,N])
plt.ylim([0,N])
ax.xaxis.set_major_formatter(ticker.FuncFormatter(lambda x, pos: ('%g') % (x * 5.0)))
plt.show()