Python Pandas 绘图和 groupby

用户1889342

我重新表述了我的问题。

我有一个如下所示的 Pandas 数据框:

   data = [[0, 'cat1', 1, 11], [33, 'cat1', 3, 52], [0, 'cat1', 4, 14], [11, 'cat2', 3, 22], [14, 'cat2', 2, 18], [0, 'cat2', 5, 13]]
   df = pd.DataFrame.from_records(data_str, index=['time1', 'time2', 'time2', 'time3', 'time1', 'time1'], columns = ['Text Time',  'Tag', 'Relevance', 'Text length'])
   df = df.sort_index()
   df.plot(x='Text Time', y = 'Relevance')



Text       Time   Tag  Relevance  Text length
time1          0  cat1          1           11
time1         33  cat1          3           52
time2         85  cat1          4           14
time1         11  cat2          3           22
time2         99  cat2          2           18
time3        117  cat2          5           13

Text Time列是我的时间,X轴和相关性是y轴。现在我想:

  • 在 x 轴上,Text Time使用索引 ( time1, time2, time3)分组
  • 我只想绘制两条线,cat1并且cat2,每条线都由相关性数据表示。

在此处输入图片说明

It_is_Chris

因为你在这里改变了问题是更新的答案:

查看代码中的注释

import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import style
style.use('ggplot')
%matplotlib inline

# read your dataframe and sort
df = pd.read_clipboard()
df.drop(columns=['length'], inplace=True)
df.rename(columns={'Text.1': 'Text length'}, inplace=True)
df.sort_values(['Text', 'Tag', 'Time'], inplace=True)
x = list(df['Time']) # set x axis by creating a list of time

fig, ax = plt.subplots() # plot mulitple lines
for xlabels, group in df.groupby(['Tag']): # group by Tag
    df['Time'] = df['Time'].astype(str) # change time to a string to create xticks
    xticks = list(df['Time']+'\n'+df['Text']+'\n'+df['Tag']) # create xticks

    group.plot(kind='line',x='Time', y='Relevance', ax=ax)
    ax.legend(['Cat1', 'Cat2'])
    ax.set_xlabel('Time')
    plt.xticks(x, xticks)

    # resize plot
    pos1 = ax.get_position()
    pos2 = [pos1.x0, pos1.y0,  pos1.width + 1, pos1.height + .5]
    ax.set_position(pos2)

输出

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Pandas / Python中使用GroupBy进行绘图

来自分类Dev

Python Pandas Groupby 和聚合

来自分类Dev

Python Pandas Groupby行为

来自分类Dev

Boxplot与pandas和groupby

来自分类Dev

Python Pandas:使用groupby()和agg()时是否保留顺序?

来自分类Dev

python pandas groupby和从不同组中减去列

来自分类Dev

在Python中一起使用pandas groupby和numpy

来自分类Dev

python pandas groupby和从不同组中减去列

来自分类Dev

Python Pandas-Groupby和Mean,但保留列名

来自分类Dev

python(pandas):重组groupby语句

来自分类Dev

了解Python Pandas中的groupby()

来自分类Dev

Python Pandas:Pivot groupby对象

来自分类Dev

Python Pandas groupby 多个计数

来自分类Dev

python:Pandas groupby & 应用优化

来自分类Dev

Groupby和Pivot Pandas表

来自分类Dev

pandas groupby id 和月份

来自分类Dev

熊猫groupby对象,组合和绘图

来自分类Dev

使用 pandas 和 matplotlib 绘图

来自分类Dev

使用Python和绘图按日期对Pandas数据框进行分组

来自分类Dev

python和pandas在两个日期索引值之间的绘图

来自分类Dev

循环文件和绘图(Python)

来自分类Dev

Python Pandas-带有apply()和rolling()的groupby()非常慢

来自分类Dev

Python Pandas计算groupby的Z得分

来自分类Dev

Python Pandas:在groupby中键入错误

来自分类Dev

Python Pandas groupby近距离事件

来自分类Dev

Python Pandas Groupby删除DateTime列

来自分类Dev

Python Pandas对groupby结果进行排序

来自分类Dev

Python Pandas:如何返回groupby的成员

来自分类Dev

Python Pandas Groupby无法正常工作