python astype category_python类别比较型图表柱形图系列堆积柱形图系列
堆积柱形图
堆积柱形图显示单个项目与整体之间的关系;
比较各个类别的每个数值所占总数值的大小;
堆积柱形图以二维垂直堆积矩形显示数值;
堆积柱形图需要特别注意事项:
柱形图的X轴变量一般为类别型,Y轴变量为数值型;
要先求和得到每个类别的总和数值;
再对数据进行降序处理;
图例的变量属于序数型,则需要按顺序显示图例;
图例变量属于无序型,则最好根据其均值排序;
使数值最大的类别放置在最下面,最靠近X轴;
容易观察每个堆积柱形内部的变量比例;
plotnine包绘制堆积图
plotnine中绘制堆积柱形图表适用geom_bar()函数;
参数position设置为:stack
import pandas as pd
import numpy as np
from plotnine import *
#堆积柱形图
df=pd.read_csv('d:\python\out\StackedCD.csv')
Sum_df=df.iloc[:,1:].apply(lambda x: x.sum(), axis=0).sort_values(ascending=False)
meanRow_df=df.iloc[:,1:].apply(lambda x: x.mean(), axis=1)
Sing_df=df['Clarity'][meanRow_df.sort_values(ascending=True).index]
mydata=pd.melt(df,id_vars='Clarity')
mydata['variable']=mydata['variable'].astype("category",Sum_df.index)
mydata['Clarity']=mydata['Clarity'].astype("category",Sing_df)
base_plot=(ggplot(mydata,aes(x='variable',y='value',fill='Clarity'))
+geom_bar(stat="identity", color="black", position='stack',width=0.7,size=0.25)
+scale_fill_brewer(palette="YlOrRd")
+ylim(0, 15000)
+theme(
legend_title=element_text(size=18,face="plain",color="black"),
legend_text=element_text(size=16,face="plain",color="black"),
axis_title=element_text(size=18,face="plain",color="black"),
axis_text = element_text(size=16,face="plain",color="black"),
legend_background=element_blank(),
legend_position=(0.75,0.75),
aspect_ratio =1.15,
figure_size = (6.5, 6.5),
dpi = 50
)
)
print(base_plot)
base_plot.save('d:\python\out\Bar_Plot31.pdf')
matplotlib包绘制堆积柱形图
matplotlib可以使用plt.bar()函数绘制堆积柱形图;
需要依次使用plt.bar()函数绘制每个数据序列;
需要设置bottom参数(前几个数据序列的累加数值);
from matplotlib import cm,colors
from matplotlib import pyplot as plt
from matplotlib.pyplot import figure, show, rc
import numpy as np
import pandas as pd
plt.rcParams["font.sans-serif"]='SimHei' #解决中文乱码问题
plt.rcParams['axes.unicode_minus']=False #解决负号无法显示的问题
plt.rc('axes',axisbelow=True)
df=pd.read_csv('d:\python\out\StackedCD.csv')
df=df.set_index("Clarity")
Sum_df=df.apply(lambda x: x.sum(), axis=0).sort_values(ascending=False)
df=df.loc[:,Sum_df.index]
meanRow_df=df.apply(lambda x: x.mean(), axis=1)
Sing_df=meanRow_df.sort_values(ascending=False).index
n_row,n_col=df.shape
x_value=np.arange(n_col)
cmap=cm.get_cmap('YlOrRd_r',n_row)
color=[colors.rgb2hex(cmap(i)[:3]) for i in range(cmap.N) ]
bottom_y=np.zeros(n_col)
fig=plt.figure(figsize=(5,5))
#plt.subplots_adjust(left=0.1, right=0.9, top=0.7, bottom=0.1)
for i in range(n_row):
label=Sing_df[i]
plt.bar(x_value,df.loc[label,:],bottom=bottom_y,width=0.5,color=color[i],label=label,edgecolor='k', linewidth=0.25)
bottom_y=bottom_y+df.loc[label,:].values
plt.xticks(x_value,df.columns,size=10) #设置x轴刻度
plt.legend(loc=(1,0.3),ncol=1,frameon=False)
plt.grid(axis="y",c=(166/256,166/256,166/256))
ax = plt.gca() #获取整个表格边框
ax.spines['top'].set_color('none') # 设置上‘脊梁’为无色
ax.spines['right'].set_color('none') # 设置右‘脊梁’为无色
ax.spines['left'].set_color('none') # 设置左‘脊梁’为无色
学习小结:
每天学习时结合案例加深了解每种图形展现
python astype category_python类别比较型图表柱形图系列堆积柱形图系列相关推荐
- python柱状图挨在一起_Excel图表,怎么把柱形图紧挨着?-excle柱状图挨在一起
Excel图表,怎么把柱形图紧挨着? 删除数据源中X轴的分度的空格 EXCEL中如何把柱状图和线状图合并在一起 选择自的类型里面的"两轴线-"即可 还种方法,先将所有数据柱状图,然 ...
- excel行列互换_EXCEL图表中的堆积柱形图如何行列互换
堆积柱形图根据原始数据表格做出后,使用者可以根据用户需求对原始表格行列互换,从而改变柱形图所要传达的内容信息,从而满足用户的不同工作需求. 工具/原料 EXCEL 方法/步骤 如下图,图表的横坐标为[ ...
- 利用Python绘制柱形图或堆积柱形图
本文所运用到的编程工具为Jupyter Notebook 柱形图的绘制 具体编辑代码如下: import numpy as np import matplotlib.pyplot as pltx = ...
- python 热力图_python高维数据型图表热力图、树形图
热力图 热力图(heat map) 一种将规则化矩阵数据转换成颜色色调的常用的可视化方法: 每个单元对应数据的某些属性: 属性的值通过颜色映射转换为不同色调并填充规则单元: 表格坐标的排列和顺序都可以 ...
- python 堆叠柱状图,Python可视化matplotlib12-垂直|水平|堆积柱形图详解
柱形图(又称柱状图.直方图.条形图)用于各组数据的数量比较,可以简单的分为水平柱形图.垂直柱形图及堆积柱形图. 本文详细介绍matpltlib中垂直.水平和堆积三种柱形图的绘制. 我的公众号:&quo ...
- Python 数据挖掘之中医证型关联规则挖掘
Python 数据挖掘之中医证型关联规则挖掘 综述 部分数据展示 数据聚类离散化 Apriori关联规则分析 结果 综述 对中医证型数据进行挖掘分析,运用的算法有 K-Means,MeanShift, ...
- Python使用matplotlib可视化发散型条形图、发散条形图(Diverging Bars)是一种可以同时处理负值和正值的条形图、并按照大小排序区分数据(Diverging Bars)
Python使用matplotlib可视化发散型条形图.发散条形图(Diverging Bars)是一种可以同时处理负值和正值的条形图.并按照大小排序区分数据(Diverging Bars) 目录
- Python使用matplotlib可视化发散型点图、发散型点图可以同时处理负值和正值、并按照大小排序区分数据、为发散型点图添加数值标签(Diverging Dot Plot )
Python使用matplotlib可视化发散型点图.发散型点图可以同时处理负值和正值.并按照大小排序区分数据.为发散型点图添加数值标签(Diverging Dot Plot ) 目录
- python是一种解释型、面向什么的计算机程序设计语言_python语言是一种什么类型...
python语言是一种什么类型,是一种,类型,语言,是在,程序 python语言是一种什么类型 易采站长站,站长之家为您整理了python语言是一种什么类型的相关内容. python语言是一种什么类型 ...
- Python决策树鸢尾花类别分类
Python决策树鸢尾花类别分类 引入使用到的模块 #决策树 鸢尾花类别 import sklearn.datasets as dSets import pandas as pd; import ma ...
最新文章
- python嵌套循环效率_Python嵌套循环数组比较优化的可能性?
- 问题排查:单表3000笔数据查询竟然要2秒?
- Oracle查找包共用,oracle – 用于查找包的多级依赖关系的脚本
- tomcat项目的ajax路径问题,Tomcat下ajax请求路径总结
- jmc线程转储_使线程转储智能化
- java etcd api_在java中如何使用etcd的v2 和v3 api获取配置,并且对配置的变化进行监控和监听...
- java中遍历collection_使用Java中的Iterator遍历Collection
- 博物馆施工组织设计方案
- 系统思考负反馈之戴明的PDCA循环
- 大数据技术在银行业中的应用场景,主要有哪些?
- 2020年7月PAT甲级真题 The Judger
- 基于MIMO的无线携能通信系统优化问题的基础知识和研究方向
- 王者战力接口(免费),附接口文档+小程序源码
- UE4 创建开始游戏界面UI
- BEEF的搭建与使用
- 唱作俱佳,腾讯AI艾灵领唱中国新儿歌
- map集合用于存储信息(映射关系)
- Stripe 银行卡支付功能初步指南(Java)
- Iphone开发用导航控制器实现视图的分层切换(UINavigationController)
- iphone 传android,安卓和苹果手机怎么互传文件_安卓与苹果手机之间互传文件的方法教程_3DM手游...
热门文章
- 业务中台实践助力企业数字化转型
- php命令模式,老生常谈PHP面向对象之命令模式(必看篇)
- php7 imagick扩展,php7如何安装imagick扩展
- iis swagger 部署_AspNet Core Api Restful +Swagger 发布IIS 实现微服务之旅 (二)
- 【光学】基于matlab像面数字全息离轴干涉模拟【含Matlab源码 215期】
- 【手势识别】基于matlab肤色静态手势识别【含Matlab源码 288期】
- linux流量管家安装失败,解决Linux流量统计软件vnstat安装后无法统计流量的问题...
- js tree选中子集默认选中上级_原生js实现轮播图(两种方法)
- nlp n-gram_NLP中的单词嵌入:一键编码和Skip-Gram神经网络
- 高新计算机考试1-8视频,最新版计算机高新考试 PS 第1单元1-8.doc