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参数?