如何使用Matplotlib对熊猫数据框的数据进行分类和绘制?

时间:2019-03-23 16:17:51

标签: python pandas python-2.7 dataframe matplotlib

我有一个DataFrame的Tweet值,想针对'Favourites'绘制'Date'的图形,并按'User'对数据进行分类/颜色编码。

我能够获得数据的散点图或条形图,但无法获得有效的解决方案以根据'User'进行分类。 'Date'在图中也变得混乱,我无法理解导致此问题的原因。

我尝试使用this tutorial获取折线图,但不了解如何将其应用于我的DataFrame

DataFrame结构

data_frame = pandas.DataFrame(data=[tweet.text for tweet in tweets], columns=['Tweets'])

data_frame['User'] = numpy.array([tweet.user.screen_name for tweet in tweets])
data_frame['ID'] = numpy.array([tweet.id for tweet in tweets])
data_frame['Length'] = numpy.array([len(tweet.text) for tweet in tweets])
data_frame['Date'] = numpy.array([tweet.created_at for tweet in tweets])
data_frame['Source'] = numpy.array([tweet.source for tweet in tweets])
data_frame['Favourites'] = numpy.array([tweet.favorite_count for tweet in tweets])
data_frame['Retweets'] = numpy.array([tweet.retweet_count for tweet in tweets])

return data_frame

绘图

x = result.Date
y = result.Favourites

plt.xlabel("Date", fontsize=10)
plt.ylabel("Favourites", fontsize=10)


plt.figure(figsize=(30,30))

fig, ax = plt.subplots()


plt.scatter(x,y)

plt.savefig('plot.png')

我希望该图显示Favourites随时间变化的线形图,并用不同的User颜色编码,如下例所示:this example

我当前的输出是这样的:this

样本数据

Output

Raw paste

2 个答案:

答案 0 :(得分:0)

不查看确切数据就很难提供解决方案。也许这值得一试。

for user in data_frame.User.unique():
     d = data_frame[data_framef['User']==user]
     plt.plot(d['Date'],d['Favourites'],'o')

plt.plot()

答案 1 :(得分:0)

df = pd.DataFrame( {'Favorites':['100','200','300'] ,'Date':['02/20/2015','01/15/2016','08/21/2015']})
df['Date'] =pd.to_datetime(df.Date)
df=df.sort_values("Date")
x=df.Date
y=df.Favorites
plt.plot(x,y)
plt.show()

从您提供的图像中,我看到在进行打印以尝试按日期对数据框进行排序然后进行打印时,存在锯齿形线。