【问题标题】:Python pandas datetime plot xticks not in even gapsPython pandas datetime plot xticks不在偶数间隙中
【发布时间】:2019-05-01 05:40:15
【问题描述】:

使用 Python 3.7、Jupytermatplotlib 3.0.1、pandas 0.23.4 时(全部更新) pandas 日期图(datetime64 系列)的 xticks 存在奇怪的间隙。 我怎样才能使间隙均匀?

import pandas as pd
import matplotlib.pyplot as plt
x = pd.date_range(start='1/1/2018', periods=80) # 80 days
y = pd.np.random.random(80)
plt.plot(x, y ,'o')
plt.xticks(rotation='vertical') 

【问题讨论】:

  • 你放的代码对我来说很好用;没有奇怪的差距。检查您是否有导致此错误的某些配置。
  • 我在干净的内核中这样做。其他配置可以隐藏在哪里?您使用哪些版本?
  • 我不知道是什么让你说有奇怪的差距。标签是每个月的 01-15-29。二月只有 28 天,所以也许 matplotlib 应该标记最后一天而不是 29,然后。但除此之外完全正常。
  • 如果你的表述有点不同,比如“我没想到会看到每个月的 29 日被标记”,你可以在 matplotlib issue tracker 上提出这个问题。
  • 应该在3.1版本解决。 github.com/matplotlib/matplotlib/issues/12925

标签: python pandas matplotlib jupyter-notebook


【解决方案1】:

您可以使用WeekdayLocator“强制”刻度的位置:

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

x = pd.date_range(start='1/1/2018', periods=80) # 80 days
y = np.random.random(80)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(x, y ,'o')
plt.xticks(rotation='vertical')
ax.xaxis.set_major_locator(mdates.WeekdayLocator(interval=1))
plt.show()

【讨论】:

  • 谢谢!它对我有用。顺便问一下,您在计算机上看到的结果是否相同?
  • 我希望得到这个问题的解释。
猜你喜欢
  • 2015-04-03
  • 2016-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-03
  • 2014-12-09
  • 2016-03-17
  • 2021-01-20
相关资源
最近更新 更多