【问题标题】:Python: Scatter plot using group_by function in PandasPython:在 Pandas 中使用 group_by 函数的散点图
【发布时间】:2016-04-28 19:46:10
【问题描述】:

我有一个数据框,其中有一个名为流派的列。每种类型都有多个值作为电影名称。格式如下:

   Movie_val  Genre
      2       Fantasy
      11      Adventure
      12      Comedy
      2       Fantasy
      2       Adventure
     11       Adventure
     13       Thriller
     12       Fantasy
     10       Thriller
     11       Drama
     1        Fantasy

我需要根据movie_val对每个类型进行分组,并将每个组绘制在一个像集群一样的散点图中(例如:一个集群或颜色中的动作类型电影,另一个集群中的冒险等)。我检查了 matplot lib 库,它期望集群图有两个值 X 和 Y。我的 group_by 命令将有很多电影值(例如,冒险类型有很多值,我不确定如何将这些值绘制为一个组)。

此外,这些 group_by 值中的每一个都应该用不同的颜色表示。 我尝试了下面的条形图代码。但我正在寻找分散的一个,因为下面的格式不允许分散。

     result = df.groupby(['genres'])['Movie_val'].quantile(0.5)
     result.sort_values().plot(kind='barh')

我正在使用 pandas 库在 python 中尝试这个。任何帮助将不胜感激。

【问题讨论】:

    标签: python pandas matplotlib plot dataframe


    【解决方案1】:

    seaborn 图书馆可能会给你你所追求的。当然,您仍然需要选择数据框中的哪些列将为散点图提供坐标。

    import seaborn as sns
    g = sns.FacetGrid(df, hue="Genre", size=5)
    g.map(plt.scatter, "column name for x dimension", "column name for y dimension", s=50, alpha=.7)
    g.add_legend();
    

    另请参阅此处具有更复杂刻面的示例: https://stanford.edu/~mwaskom/software/seaborn/tutorial/axis_grids.html

    【讨论】:

    • 我正在使用 group_by 函数对流派进行分组,单个组将具有多个值。在我的例子中,一个值为 12 的 movie_value 将在一个轴上可用,并且它有多种类型需要在另一个轴上进行绘制。我需要知道这怎么可能发生。我上面提到了我的 group_by 命令,它需要被绘制
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-27
    • 2019-03-28
    • 1970-01-01
    • 2014-03-09
    • 2017-08-01
    相关资源
    最近更新 更多