【问题标题】:Plotting over groups of values in Python在 Python 中绘制值组
【发布时间】:2016-10-09 07:07:41
【问题描述】:

我有一个看起来像这样的数据框。

        country  age  new_user  
298408      UK   32         1   
193010      US   37         0 
164494      UK   17         0   
28149       US   34         0  
297080   China   29         1    

我想在 Python 中的单个图表中绘制每个国家/地区的年龄组(20-30、30-40 等)的新用户数。

基本上,我需要为所有年龄组绘制 new_user(value 0),为所有国家/地区的所有年龄组绘制 new_user(value 1)。

我发现很难将年龄分为 20-30、30-40 等。 有人可以帮我在 python 中使用 seaborn 或 ggplot 或 matplotlib 绘制这个吗?最好是ggplot!

谢谢。

【问题讨论】:

  • 您必须groupby 他们才能获得具有实际值的数据集。你明白了吗?
  • 直方图,具有明显的 bin 大小

标签: python matplotlib plot seaborn python-ggplot


【解决方案1】:
import seaborn as sns
from pandas import DataFrame
from matplotlib.pyplot import show, legend
d = {"country": ['UK','US','US','UK','PRC'],
       "age": [32, 37, 17, 34, 29],
       "new_user": [1, 0, 0, 0,1]}

df = DataFrame(d)
bins = range(0, 100, 10)
ax = sns.distplot(df.age[df.new_user==1],
              color='red', kde=False, bins=bins, label='New')
sns.distplot(df.age[df.new_user==0],
         ax=ax,  # Overplots on first plot
         color='blue', kde=False, bins=bins, label='Existing')
legend()
show()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-18
    • 2013-02-03
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    • 2014-09-12
    • 2013-10-08
    相关资源
    最近更新 更多