python - Pandas Python中的多柱形图
问题描述
我正在学习 Pandas,需要一些帮助来改善我的情节美学。
问题我正在尝试在 pandas 中绘制一个多列条形图(使用 Matplotlib 或通过 Seaborn 库)。我的数据中的两个主要列是
页面- 提供用户登陆位置的主列
action - 一旦用户登陆这个他会采取什么行动。采取的行动计数在action_view列中给出。
因此,页面列应该是外壳,里面应该有“动作”列值。这是下面的数据。
数据
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工作。
- 此外,像主页这样的页面具有非常高的操作计数,这会扭曲条形图。关于可以做些什么来更好地了解其他页面操作的任何想法。
- 最后,如果我想使用 _ page_view _ 列对条形图进行排序,我会使用sortvalue函数吗?
非常感谢您在这方面的帮助和建议。清除这些疑虑将有助于未来的学习。仅供参考 - 我正在使用 Ipython notebook 和 Python 3.0。
解决方案
3) plt.legend(loc=1, bbox_to_anchor=(1,1))
推荐阅读
- cypress - 赛普拉斯自定义命令:如何从 cy.get().within() 包装中产生 cy.wrap() 值?
- java - Java - 在对对象数组列表进行排序后写入 .csv 文件
- git - 如何将 ssh 凭据传递给 aws cdk deploy?
- function - 功能强大的外壳
- javascript - 在 react 中使用 formik 创建自定义按钮以上传文件
- c# - C# 试图 getshortcuttargetfile 来解析 lnk 文件
- reactjs - 我遇到错误 [错误:尝试写入只读数据库(代码 1032 SQLITE_READONLY_DBMOVED)] 使用 expo-sqlite
- snowflake-cloud-data-platform - 了解雪花 kafka 连接器配置调优参数
- mixed-models - 为什么joint_tests函数(emmeans包)的结果没有显示模型的交互之一?
- amazon-web-services - 更改退休以调用 dynamoDB 触发的 lambda