![](/img/trans.png)
[英]python 2.7 matplotlib pylab : My plot is empty. How can I make the data points show up in the plot?
[英]How can I add data points to my line plot in same colour (matplotlib)?
我有一個線條圖,我想向其添加與線條相同顏色的原始數據點(默認情況下很好)。 問題:當我為許多ID或數據點(也有缺失)執行此操作時,我無法再區分該數據屬於誰。
import pandas as pd
df = pd.DataFrame({'year': ['1988', '1989', '1990', '1988', '1989', '1990', '1988', '1989', '1990'],
'id': ['1', '1', '1', '2', '2', '2', '3', '3', '3'],
'money': ['5', '7', '8', '8', '3', '3', '7', '8', '10']}).astype(int)
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()
for i in df.id.unique():
df[df['id']==i].plot.line(x='year', y='money', ax=ax, label='id = %s'%i)
df[df['id']==i].plot.scatter(x='year', y='money', ax=ax)
plt.xticks(np.unique(df.year))
問題:如何訪問plot.line
的默認顏色列表以在plot.scatter
使用它? 還是有另一種更容易的方式來突出顯示構成線條的數據?
IIUC,您可以嘗試,盡管@QuangHoang是更好的解決方案:
import pandas as pd
df = pd.DataFrame({'year': ['1988', '1989', '1990', '1988', '1989', '1990', '1988', '1989', '1990'],
'id': ['1', '1', '1', '2', '2', '2', '3', '3', '3'],
'money': ['5', '7', '8', '8', '3', '3', '7', '8', '10']}).astype(int)
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()
color = plt.rcParams['axes.prop_cycle'].by_key()['color']
for i in df.id.unique():
df[df['id']==i].plot.line(x='year', y='money', ax=ax, label='id = %s'%i)
df[df['id']==i].plot.scatter(x='year', y='money', ax=ax, color=color[i-1])
plt.xticks(np.unique(df.year))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.