Python 根据日期范围(最小值和最大值)绘制多重折线图

Python 根据日期范围(最小值和最大值)绘制多重折线图,python,pandas,dataframe,matplotlib,charts,Python,Pandas,Dataframe,Matplotlib,Charts,我的df如下所示: DATE_MIN DATE_MAX 214 1994-06-29 2010-07-12 125 1969-10-26 2011-10-10 123 2013-07-02 2015-01-29 74 2006-01-05 2016-06-20 列为:日期\最小值、日期\最大值 我想画一个长的垂直图表,其中有尽可能多的水平线 行作为df行 日期范围在x轴上 索引位于y轴, 因此,每条线是水平的,它们不会相互交叉 因此,我想显示哪些行有一些时间重叠,因为这些行

我的df如下所示:

   DATE_MIN DATE_MAX
214 1994-06-29  2010-07-12
125 1969-10-26  2011-10-10
123 2013-07-02  2015-01-29
74  2006-01-05  2016-06-20
列为:日期\最小值、日期\最大值

我想画一个长的垂直图表,其中有尽可能多的水平线 行作为df行

  • 日期范围在x轴上
  • 索引位于y轴, 因此,每条线是水平的,它们不会相互交叉
因此,我想显示哪些行有一些时间重叠,因为这些行有重叠区域(不交叉)


超级感谢

如果您愿意制作甘特图并使用plotly,您可以使用此

将熊猫作为pd导入
从io导入StringIO
将plotly.figure\u工厂作为ff导入
txt=“”任务日期\u最小日期\u最大
214 1994-06-29  2010-07-12
125 1969-10-26  2011-10-10
123 2013-07-02  2015-01-29
74  2006-01-05  2016-06-20
"""
df=pd.read\u csv(StringIO(txt),delim\u whitespace=True)
数据=[]
对于i,df.iterrows()中的行:
data.append(dict(Task=str(第[“Task”]行)),
Start=str(行[“日期”]),
Finish=str(第[“日期”])行)
图=ff.创建甘特图(数据)
图2(图3)

感谢您迄今为止的快速回答。 事实上,我找到了一个很好的解决办法

因此,我的代码如下所示:

import matplotlib.pyplot as plt
import matplotlib.dates as dt

df = df.sort_values(by=['DATE_MIN', 'DATE_MAX'])
fig = plt.figure(figsize=(10, 50))
ax = fig.add_subplot(111)
ax = ax.xaxis_date()
ax = plt.hlines(df.ID, 
                dt.date2num(df.DATE_MIN), 
                dt.date2num(df.DATE_MAX))

你不是真的在要求甘特吗?@rpanai看来matplotlib中最接近的图表是“hlines”,它对我来说已经足够好了,谢谢这能回答你的问题吗?谢谢你,我想在没有更多外部lib的情况下完成。在这种情况下,你应该将你的问题标记为重复。