Pandas Python中的多柱形图

Posted

技术标签:

【中文标题】Pandas Python中的多柱形图【英文标题】:Multi Column Bar chart in Pandas Python 【发布时间】:2019-02-01 02:38:00 【问题描述】:

我正在学习 Pandas,需要一些帮助来改善情节的美感。

问题 我正在尝试在 pandas 中绘制一个多列条形图(使用 Matplotlib 或通过 Seaborn 库)。我的数据中的两个主要列是

页面 - 主列给出用户登陆的位置

action - 一旦用户登陆,他会采取什么行动。 action_view 列中给出了采取的行动计数。

因此,Pages 列应该是外壳,里面应该有“action”列值。这是下面的数据。

数据

import pandas as pd
import numpy as np
import seaborn as sns

sample_df = pd.DataFrame(
    'pages':('home','home','home','food','food','food','electronics','electronics','electronics','payment','payment','payment'),
    'action':('view ','added','checkout','cart viewed','added','bundled','added','product list viewed','checkout','checkout','view','removed'),
    'page_view':(100,100,100,40,40,40,70,70,70,500,500,500),
    'action_view':(30000,10000,5000,300,500,800,1500,1200,1800,1200,1400,1500)          
)

#Code for plot
sns.barplot(x='pages',y='action_view',hue='action',data=sample_df)
plt.xticks(rotation=90)
plt.xlabel('pages')
plt.ylabel('action_view')
plt.legend(loc='upper left', bbox_to_anchor=(1,1))

#Below is the image that I'm getting

问题

    在原始数据中,我有 10 个不同的页面和 10 组不同的操作,因此按照这种方法,条形图看起来非常混乱。我怎样才能更好地形象化这一点? 如何增加每个条的宽度(厚度)?另外,有没有办法给单个条加边界(显示每个动作条边界的区别)? 如何将图例包含在一个框中? 使用 seaborn 包我能够生成这个图,但它 无法使用 matplotlib。 此外,像 home 这样的页面具有非常高的 action 计数,这会使条形图产生偏差。关于可以做些什么来更好地了解其他页面操作的任何想法。 最后,如果我想使用 _page_view_ 列对条形图进行排序,我会使用 sortvalue 函数吗?

非常感谢您在这方面的帮助和建议。清除这些疑虑将有助于未来的学习。 仅供参考 - 我正在使用 Ipython 笔记本和 Python 3.0。

【问题讨论】:

【参考方案1】:

3) plt.legend(loc=1, bbox_to_anchor=(1,1))

【讨论】:

以上是关于Pandas Python中的多柱形图的主要内容,如果未能解决你的问题,请参考以下文章

Echarts 使用asp.net +ashx+ajax 实现 饼图柱形图后台交互

High-speed Charting Control--MFC绘制图表(折线图饼图柱形图)控件

PHPWordPHPWord生成图表-柱形图 | 设置数值类别展示展示多组数据

PHPWordPHPWord生成图表-柱形图 | 设置数值类别展示展示多组数据

PHPWordPHPWord生成图表-柱形图 | 设置数值类别展示展示多组数据

uniapp图表插件uCharts - 如何隐藏饼图的分类信息?- 饼图柱形图分析图图表大全 - uCharts如何使用optseopts参数?