groupby matplotlib标签不正确

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了groupby matplotlib标签不正确相关的知识,希望对你有一定的参考价值。

我有一个情节,我想纠正情节线的标签:

import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline

df = pd.read_csv('example.csv', parse_dates=['Date'],sep=';', 
dayfirst=True)
print(df)

car = df.Car.unique()


fig, ax = plt.subplots(3, sharex=True)

for ix, cars in enumerate(car):

    df[df['Car'] == cars].groupby(['Combustible']).plot(x='Date', 
                                  y='Cost', ax = ax[ix], 
                                  title="Cars: "+ cars, figsize=(10,8), 
                                 )

如何通过汽车显示正确的可燃标签?是否有可能无需循环的情节,如ggplot面部包裹功能吗?

答案

你可以试试这个。

for ix, cars in enumerate(car):
    for l,g in df[df['Car'] == cars].groupby('Combustible'):
        g.plot(x='Date', label=l,
                                  y='Cost', ax = ax[ix],
                                  title="Cars: "+ cars, figsize=(10,8),
                                 )

enter image description here

或者你可以使用seaborn并使用hue功能

import seaborn as sns

for ix, cars in enumerate(car):
    p = sns.pointplot(x='Date',y='Cost',data=df[df['Car'] == cars], hue='Combustible', ax=ax[ix], figsize=(10,8))
    p.set_title('Cars: ' + cars)

enter image description here

另一答案

使用factorplot seaborn代码更简单:

sns.factorplot(x='Date', y = 'Cost', data=df, hue='Combustible', col="Car")

但是,表现太可怕了!我有一个85000行的数据帧,我的电脑无法绘制它

另一答案

我想我找到了最好最简单的方法:

g = sns.FacetGrid(df, row="Car", hue="Combustible", size=12)
g = g.map(plt.plot, "Date", "Cost")

以上是关于groupby matplotlib标签不正确的主要内容,如果未能解决你的问题,请参考以下文章

matplotlib 财务没有正确绘制窗口

使用 matplotlib 和 pandas 制作 groupby 图

整数刻度标签 matplotlib,没有原点刻度标签

Matplotlib 显示重叠的 x-tick 标签

Matplotlib 使刻度标签字体变小

在 matplotlib/seaborn 中使用 groupby 绘制线图?