我有一个情节,我想更正情节线的标签:
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
面部包裹函数吗?
答案 0 :(得分:1)
你可以试试这个。
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),
)
或者,您可以使用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)
答案 1 :(得分:0)
使用factorplot seaborn代码更简单:
sns.factorplot(x='Date', y = 'Cost', data=df, hue='Combustible', col="Car")
然而,表现太可怕了!我有一个85000行的数据框,我的电脑无法绘制
答案 2 :(得分:0)
我认为我找到了最好最简单的方法:
g = sns.FacetGrid(df, row="Car", hue="Combustible", size=12)
g = g.map(plt.plot, "Date", "Cost")