Python:使用 DataFrame 绘制折线图和条形图时 DatetimeIndex 的不同行为

辛西

我有一个 DataFrame,其行索引为 DatetimeIndex。

在我制作折线图和条形图时,该指数在 x 轴上的显示方式有所不同。我的代码如下:

start_date = datetime.datetime.strptime('2017-02-20', '%Y-%m-%d').date()
end_date = datetime.datetime.strptime('2017-02-23', '%Y-%m-%d').date()

daterange = pd.date_range(start_date, end_date)
df = pd.DataFrame(index = daterange, data = {'Male':[12, 23, 13, 11], 'Female': [10, 25, 15, 9]})


df.plot(kind='line')
df.plot(kind='bar', stacked = False, grid=1)

我获得的图如下。在 x 轴上具有很好的日期格式的线图:

在 x 轴上具有很好的日期格式的线图

在 x 轴上没有格式化日期的条形图:

没有在 x 轴上格式化日期的条形图

在折线图中,x 轴标签的格式很好,左角的月份和年份以及用作 x 刻度的日期。但在条形图中,整个日期和时间 (00:00:00) 的显示方式与折线图中不同。

如何在条形图中在 x 轴上获得正确的日期格式而不显示时间?

塞巴斯蒂安·沃兹尼(Sebastian Wozny)

问题出在pandas. 如果pd.DateTimeFormatter不派生自定义子类或matplotlib直接使用,则无法使用条形图

在第 1766 行(在开发版本中1784)pandas.tools.plotting,日期时间格式LinePlot已完成。这在 中不存在BarPlot,原因我只能假设:

折线图旨在打印时间序列数据,而对于条形图则不一定有意义。

我仍然希望条形图能够在不使用 matplotlib 的情况下正确设置日期格式,因此您可能想要打开该pandas项目的问题

随着matplotlib直接:

import pandas as pd
import datetime
import matplotlib.ticker as ticker
import matplotlib.pyplot as plt

start_date = datetime.datetime.strptime('2017-02-20', '%Y-%m-%d').date()
end_date = datetime.datetime.strptime('2017-02-23', '%Y-%m-%d').date()
daterange = pd.date_range(start_date, end_date)
df = pd.DataFrame(index = daterange, data = {'Male':[12, 23, 13, 11], 'Female': [10, 25, 15, 9]})
ax=df.plot.bar(xticks=df.index.month, stacked = False, grid=1)
ticklabels = [item.strftime('%b %d') for item in df.index]
ax.xaxis.set_major_formatter(ticker.FixedFormatter(ticklabels))
plt.gcf().autofmt_xdate()

plt.show()

格式正确

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

C和Python-模(%)操作的不同行为

Chart.js不同比例的混合条形图和折线图

使用CLI和Maven时Liquibase的不同行为

pandas DataFrame如何混合不同比例的条形图和折线图

使用iOS图表的组合图表(折线图和条形图)

Python绘图条形图和百分比折线图在同一图形上

无法使用pandas plot()函数组合条形图和折线图

Python使用辅助y轴制作条形图和折线图

使用ggplot的条形图和折线图的多个y轴

在Python中使用属性时Class.foo和instance.foo的不同行为

在python中实现线程,对不同和相似线程数的不同行为

使用matplotlib在同一图中使用不同的y轴绘制条形图和线图(无熊猫)

在一个图中具有组的Python条形图和折线图

如何使用ng2-charts获取多个图表(条形图和折线图)?

如何使用R组合特定变量的折线图和条形图

使用pandas和matplotlib绘制叠加图(折线图和条形图)

组合条形图和折线图(python)时出现问题

如何使用按钮向Matplotlib条形图和折线图添加排序功能

条形图和折线图在同一图表区域中时不同步

如何使用ggplot在一个图表中创建条形图和折线图

Android中使用aChartEngine的两个条形图和两个折线图的组合

使用FigureCanvasQTAgg时不同的DataFrame绘制行为

使用选取框行为创建折线图和条形图

按索引和按列过滤DataFrame时pandas的不同行为

Python 并行处理 - Linux 和 Windows 之间的不同行为

使用 tqdm 的不同行为

Python .pop() 组合表达式时的不同行为

Angular ng-content 使用选择时的不同行为

Python本地和生产中`is`和`==`的不同行为