Python 如何在matplotlib中绘制200行(时间序列)并使其在x轴上可读?

Python 如何在matplotlib中绘制200行(时间序列)并使其在x轴上可读?,python,python-3.x,pandas,matplotlib,Python,Python 3.x,Pandas,Matplotlib,嘿,伙计们,这是我的密码 import pandas as pd import matplotlib.pyplot as plt import matplotlib.dates as mdates import numpy as np banco=pd.read_csv('banco central3.csv',index_col='Fecha',parse_dates=['Fecha'], usecols=. ['RRII','Fecha']) print(banco.head()) fi

嘿,伙计们,这是我的密码

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

banco=pd.read_csv('banco central3.csv',index_col='Fecha',parse_dates=['Fecha'], usecols=. 
['RRII','Fecha'])
print(banco.head())
fig, ax = plt.subplots(figsize=(10, 10))

ax.bar(banco.index.values,
    banco['RRII'],
    color='purple')


ax.xaxis.set_major_locator(mdates.WeekdayLocator())
ax.xaxis.set_major_formatter(mdates.DateFormatter('%m-%Y'))


ax.set(xlabel="DATE",
   ylabel="RRII",
   title="\nReservas Internacionales")
plt.tight_layout()
plt.show()
作为绘图,输出如下所示。数据(x轴)无法读取

日期时间('Fecha')约为200行。我想把X轴弄清楚,让它可读

而且我也不知道为什么柱状图看起来是那样的(它们之间如此分离)。我想要一个经典的条形图

您可以看到数据时间无法读取

数据格式如下:

            RRII
Fecha             
2019-11-27  43.765
2019-11-28  43.736
2019-11-29  43.772
2019-02-12  43.731
2019-03-12  43.750
但我有200排

有什么办法吗?多谢各位

编辑

我将mdates.Daylocator更改为m.dates.Monthlocator。我添加了一个Plt.setp函数。现在我的图没有重叠,但是直线图没有意义

ax.xaxis.set_major_locator(mdates.MonthLocator())

plt.setp(ax.get_xticklabels(), rotation=30, 
horizontalalignment='right')
图片在这里。我想让情节在datetime之前跟随RRII


要使x轴可读,请更改线条

ax.xaxis.set_major_locator(mdates.WeekdayLocator())

但是,对于200行,不建议使用条形图;使用普通图:

ax.plot(banco['RRII'], '.', color='purple')

[编辑:从直线点更改标记]

这是否回答了您的问题。。。使用python matplotlib x轴日期重叠的变体进行更多搜索您将按照数据点在csv中的顺序而不是按日期绘制数据点。你应该对你的csv进行排序,或者做一个平滑的散点图,而不是直线图。我如何在图中绘制?请不要根据你得到的答案不断更改你的问题-只需问一个新问题或搜索。这不是一个讨论论坛。是的!这项工作有重叠。非常感谢你。但是现在我对这个情节有了问题。我将把它上传到问题中使用banco=banco.sort_index(),然后再打印以对DateTimeindex进行排序。为了确保索引是一个带有banco.index=pd的DateTimeindex。到_datetime(banco.index),我已将打印标记从一行更改为一点。这看起来应该更好。但数据集可能还有其他问题。
ax.plot(banco['RRII'], '.', color='purple')