python - 向 pandas 绘图添加小刻度

标签 python python-3.x pandas datetime matplotlib

我有以下代码:

from pandas_datareader import data as web
import matplotlib.pyplot as plt

fig, (ax1, ax2) = plt.subplots(2, 1)
df = web.DataReader('F', 'yahoo')
df2 = web.DataReader('Fb', 'yahoo')
ax = df.plot(figsize=(35,15), ax=ax1)
df2.plot(y = 'Close', figsize=(35,15), ax=ax2)

plt.show()

这会生成如下所示的图表:

enter image description here

如何更改 pandas 图中的小刻度,使其生成如下所示的 x 轴: enter image description here

最佳答案

检查此代码:

from pandas_datareader import data as web
import matplotlib.pyplot as plt
import matplotlib.dates as md

fig, (ax1, ax2) = plt.subplots(2, 1)
df = web.DataReader('F', 'yahoo')
df2 = web.DataReader('Fb', 'yahoo')
ax = df.plot(figsize=(35,15), ax=ax1)
df2.plot(y = 'Close', figsize=(35,15), ax=ax2)

for ax in (ax1, ax2):
    ax.xaxis.set_major_locator(md.MonthLocator(bymonth = range(1, 13, 6)))
    ax.xaxis.set_major_formatter(md.DateFormatter('%b\n%Y'))
    ax.xaxis.set_minor_locator(md.MonthLocator())
    plt.setp(ax.xaxis.get_majorticklabels(), rotation = 0 )

plt.show()

您可以使用 ax.xaxis 方法管理 xticks。上面的代码产生了这个图:

enter image description here

关于python - 向 pandas 绘图添加小刻度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62358966/

相关文章:

python 打开一个包含整数的文件

python - 如何在streamlit中将DataFrame保存为csv?

python - 如何串联替换列表中的元素

Python:从 FuzzyWuzzy ExtractOne() 返回 Pandas DataFrame

python - 我在哪里可以找到 `lib-dynload` 中模块的源代码?

python - 从Python中的字符串中删除html标签和实体

Python:tf-idf-cosine:查找文档相似度

python - 在 Mac 上安装 python3 后 pip 无法工作

python - 提取文件名并将其用作 Pandas 中 DataFrame 的标签

python - Python中按近似比例分配元素