在Pandas中绘制:使用子地块时没有属性类型?

2024-05-18 06:12:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个绝对的pandas/matplotlib初学者,我在搜索了好几次之后还是搞不懂这个问题。在

刚刚了解到,为了格式化日期(基本上是间隔时间),我需要做一个额外的工作,称为fig(用于图):

fig, tg = plt.subplots(1)
tg.plot(pandoc['date_time'], pandoc['total_goals'], kind="bar")
tg.fmt_xdata = mdates.DateFormatter('%Y-%m-%d')
fig.autofmt_xdate()

但是,当我试图将数据kind更改为`bar时,我得到了以下错误:

AttributeError: Unknown property kind

当我这么做的时候,它完美地工作了

^{pr2}$

但是mdates.DateFormatter就不起作用了。在

我遗漏了一些东西。它是什么?在


Tags: pandasdatetimeplotmatplotlibfigbarplt
1条回答
网友
1楼 · 发布于 2024-05-18 06:12:29

Pandas数据帧,例如pandoc,有一个带有a ^{} parameterplot方法。 所以可以用

pandoc.plot(x='date_time', y='total_goals', kind="bar", ax=tg)

注意,ax=tg用于告诉pandoc在matplotlib轴上绘制tg。在


相反,matplotlib轴,比如tg,有一个plot方法,但是tg.plotdoes not have a ^{} parameter。相反,要使用Axes对象绘制条形图,请调用它的^{} method。在


使用pandoc.plot方法,您可以使用类似于

^{pr2}$

enter image description here

注意,tg.set_xticklabels用于设置xticklabels,而不是mdates.DateFormatter。绘制条形图时,基本条形图xtick值是整数:

In [21]: tg.get_xticks()
Out[26]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

xtick值是日期时,只能使用mdates.DateFormatter。 由于条形图具有固定数量的条形图,因此使用^{}这样的动态格式化程序没有任何好处;您最好使用Axes.set_xticklabels方法设置xticklabels。在


labels = ['']*N

创建N空字符串的列表。例如,['']*2的计算结果为['', '']。在

x, y = a, b

equivalent to

x = a
y = b

因此labels, skip = ['']*N, 10相当于

labels = ['']*N
skip = 10

Python切片表示法,例如x[start:end:step]explained here。例如

In [227]: x = list('ABCDEFGHIJK'); x
Out[227]: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K']

In [228]: x[1::3]
Out[228]: ['B', 'E', 'H', 'K']    <  the first item is x[1], and then we pick up every 3rd item

所以在上面的代码中,pandoc['date_time'].dt.strftime('%Y-%m-%d')是一个字符串序列,如果我们称之为x,那么{}是一个新的序列,它以x[skip//2]开始,然后按skip数量递增。在


skip//2使用integer-divisionskip除以2。在


labelsN空字符串的列表开头。使用skip=10,赋值

labels[skip//2::skip] = pandoc['date_time'].dt.strftime('%Y-%m-%d')[skip//2::skip]

将每10个元素(从skip//2开始)替换为pandoc['date_time'].dt.strftime('%Y-%m-%d')中的日期字符串。在


pandoc['date_time']是一个时间序列。 pandoc['date_time'].dt.strftime('%Y-%m-%d')使用^{} method将日期格式化为%Y-%m-%d格式的日期字符串。在

相关问题 更多 >