我知道,有可能通过手动设置他们改变轴标签。 (例如: - Modify tick label text)Matplotlib:自动修改轴标签
然而,这显然只有当你知道你想要什么标签,这是不适合我的情况下工作。
这里是想什么,我要完成一个例子: 我有两个numpy的数组:x
包含1和366之间的数字(但不一定是全部),较2016年“Y”天包含一些其他的号码。我想提出的散点图“Y”与“X”:
import numpy as np
import matplotlib.pyplot as plt
x = np.array([27, 38, 100, 300])
y = np.array([0.5, 2.5, 1.0, 0.8])
plt.scatter(x, y)
毫不奇怪,这产生在0与蜱的图表,50,100,...,350我想将这些刻度标签更改为单独的日期。 (例如,在50刻度会被贴上类似“2月19日”)。假设我有一个函数tick_to_date
一种能将数字0为日期字符串,所以它会是容易的,我手动更改所有的蜱我图形。 (如果您需要占位符功能:tick_to_date = lambda x: ("day " + str(x))
)
ax = plt.gca()
ax.set_xticklabels([tick_to_date(tick.get_text()) for tick in ax.get_xticklabels()])
但是,这只能做一次。如果我现在放大,或进行改变蜱任何行动,新的刻度标记都不会是什么,我想他们是。
理想的情况下,而不是手动设置的标签,我会告诉轴线总是用我自己的tick_to_date
功能改造刻度标记。另外,调用每次蜱改变时,上面一行代码,但我不知道会这么好。这些可能/可行/愉快可用吗?