python - 在python中用pandas groupby绘图,多幅图

标签 python pandas matplotlib pandas-groupby seaborn

我想用类似于我在下面创建的 df 的数据制作三个不同的图(按位置)。在 x 轴上,我需要 y 轴上的日期和数字。最好是每个日期都有一个条形图的条形图。
是否可以使用例如在几行简单的行中完成它该位置的 groupby 功能?
谢谢!

data = {"location": ["USA", "USA", "USA", "UK", "UK", "UK", "World", "World", "World"], "date": ["21-06-2021", "22-06-2021", "23-06-2021", "21-06-2021", "22-06-2021", "23-06-2021", "21-06-2021", "22-06-2021", "23-06-2021"], "number": [456, 543, 675, 543, 765, 345, 654, 345, 654]}

import pandas as pd
df = pd.DataFrame (data, columns = ['location','date','number'])
df["date"] = pd.to_datetime(df["date"])
df

最佳答案

您不是在这里进行分组,您只想为每个位置设置不同的行。
样本数据

# using data from OP
df = pd.DataFrame (data, columns = ['location','date','number'])

# using .dt.date will remove the time component for nicer x-axis labels
df["date"] = pd.to_datetime(df["date"]).dt.date
线图
Plotly
import plotly.express as px

px.line(df, x='date', y="number", color="location")
enter image description here
Seaborn
import seaborn as sns

p = sns.catplot(data=df, x='date', y="number", hue='location', kind='point', height=4, aspect=1.5)
enter image description here
Pandas
如果你更喜欢只使用 Pandas ,你可以关注这个 answer
  • pandas.DataFrame.plot

  • pv = df.pivot(index="date", columns='location', values='number')
    
    ax = pv.plot(figsize=(16, 6))
    
    enter image description here
    我的建议是尝试使用 plotly。你可以有很好的交互式绘图,语法也很简单。
    条形图
    情节
    px.bar(df, x='date', y="number", color="location", barmode='group')
    
    enter image description here
    海伯恩
    p = sns.catplot(data=df, x='date', y="number", hue='location', kind='bar', height=4, aspect=1.5)
    
    enter image description here
    Pandas
    ax = pv.plot(kind='bar', figsize=(8, 5), rot=0)
    
    enter image description here

    关于python - 在python中用pandas groupby绘图,多幅图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68180115/

    相关文章:

    python - 我试图在 pandas 中申请 .apply 列,但它抛出 TypeError : 'float' object is not subscriptable

    python - 在列表中的对字符串之前用数字替换 Pandas 中的字符串

    python - 设置子图的背景颜色

    python - 如何确定 matplotlib 中的屏幕大小

    python - 被 pxssh 卡住了。第一次登录成功后就不再登录了?

    python - 将 cookiecutter-django 和 gunicorn 部署到 digital ocean 的 Production.py 问题

    python - 使用python glob查找一个14位数字的文件夹

    python - Pandas 的大小和计数有什么区别?

    python - Matplotlib - 将文本标签向右移动 'x' 点

    Python声明多变量混淆