堆积柱形图

堆积柱形图显示单个项目与整体之间的关系;

  • 比较各个类别的每个数值所占总数值的大小;

  • 堆积柱形图以二维垂直堆积矩形显示数值;

堆积柱形图需要特别注意事项:

  • 柱形图的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类别比较型图表柱形图系列堆积柱形图系列相关推荐

  1. python柱状图挨在一起_Excel图表,怎么把柱形图紧挨着?-excle柱状图挨在一起

    Excel图表,怎么把柱形图紧挨着? 删除数据源中X轴的分度的空格 EXCEL中如何把柱状图和线状图合并在一起 选择自的类型里面的"两轴线-"即可 还种方法,先将所有数据柱状图,然 ...

  2. excel行列互换_EXCEL图表中的堆积柱形图如何行列互换

    堆积柱形图根据原始数据表格做出后,使用者可以根据用户需求对原始表格行列互换,从而改变柱形图所要传达的内容信息,从而满足用户的不同工作需求. 工具/原料 EXCEL 方法/步骤 如下图,图表的横坐标为[ ...

  3. 利用Python绘制柱形图或堆积柱形图

    本文所运用到的编程工具为Jupyter Notebook 柱形图的绘制 具体编辑代码如下: import numpy as np import matplotlib.pyplot as pltx = ...

  4. python 热力图_python高维数据型图表热力图、树形图

    热力图 热力图(heat map) 一种将规则化矩阵数据转换成颜色色调的常用的可视化方法: 每个单元对应数据的某些属性: 属性的值通过颜色映射转换为不同色调并填充规则单元: 表格坐标的排列和顺序都可以 ...

  5. python 堆叠柱状图,Python可视化matplotlib12-垂直|水平|堆积柱形图详解

    柱形图(又称柱状图.直方图.条形图)用于各组数据的数量比较,可以简单的分为水平柱形图.垂直柱形图及堆积柱形图. 本文详细介绍matpltlib中垂直.水平和堆积三种柱形图的绘制. 我的公众号:&quo ...

  6. Python 数据挖掘之中医证型关联规则挖掘

    Python 数据挖掘之中医证型关联规则挖掘 综述 部分数据展示 数据聚类离散化 Apriori关联规则分析 结果 综述 对中医证型数据进行挖掘分析,运用的算法有 K-Means,MeanShift, ...

  7. Python使用matplotlib可视化发散型条形图、发散条形图(Diverging Bars)是一种可以同时处理负值和正值的条形图、并按照大小排序区分数据(Diverging Bars)

    Python使用matplotlib可视化发散型条形图.发散条形图(Diverging Bars)是一种可以同时处理负值和正值的条形图.并按照大小排序区分数据(Diverging Bars) 目录

  8. Python使用matplotlib可视化发散型点图、发散型点图可以同时处理负值和正值、并按照大小排序区分数据、为发散型点图添加数值标签(Diverging Dot Plot )

    Python使用matplotlib可视化发散型点图.发散型点图可以同时处理负值和正值.并按照大小排序区分数据.为发散型点图添加数值标签(Diverging Dot Plot ) 目录

  9. python是一种解释型、面向什么的计算机程序设计语言_python语言是一种什么类型...

    python语言是一种什么类型,是一种,类型,语言,是在,程序 python语言是一种什么类型 易采站长站,站长之家为您整理了python语言是一种什么类型的相关内容. python语言是一种什么类型 ...

  10. Python决策树鸢尾花类别分类

    Python决策树鸢尾花类别分类 引入使用到的模块 #决策树 鸢尾花类别 import sklearn.datasets as dSets import pandas as pd; import ma ...

最新文章

  1. python嵌套循环效率_Python嵌套循环数组比较优化的可能性?
  2. 问题排查:单表3000笔数据查询竟然要2秒?
  3. Oracle查找包共用,oracle – 用于查找包的多级依赖关系的脚本
  4. tomcat项目的ajax路径问题,Tomcat下ajax请求路径总结
  5. jmc线程转储_使线程转储智能化
  6. java etcd api_在java中如何使用etcd的v2 和v3 api获取配置,并且对配置的变化进行监控和监听...
  7. java中遍历collection_使用Java中的Iterator遍历Collection
  8. 博物馆施工组织设计方案
  9. 系统思考负反馈之戴明的PDCA循环
  10. 大数据技术在银行业中的应用场景,主要有哪些?
  11. 2020年7月PAT甲级真题 The Judger
  12. 基于MIMO的无线携能通信系统优化问题的基础知识和研究方向
  13. 王者战力接口(免费),附接口文档+小程序源码
  14. UE4 创建开始游戏界面UI
  15. BEEF的搭建与使用
  16. 唱作俱佳,腾讯AI艾灵领唱中国新儿歌
  17. map集合用于存储信息(映射关系)
  18. Stripe 银行卡支付功能初步指南(Java)
  19. Iphone开发用导航控制器实现视图的分层切换(UINavigationController)
  20. iphone 传android,安卓和苹果手机怎么互传文件_安卓与苹果手机之间互传文件的方法教程_3DM手游...

热门文章

  1. 业务中台实践助力企业数字化转型
  2. php命令模式,老生常谈PHP面向对象之命令模式(必看篇)
  3. php7 imagick扩展,php7如何安装imagick扩展
  4. iis swagger 部署_AspNet Core Api Restful +Swagger 发布IIS 实现微服务之旅 (二)
  5. 【光学】基于matlab像面数字全息离轴干涉模拟【含Matlab源码 215期】
  6. 【手势识别】基于matlab肤色静态手势识别【含Matlab源码 288期】
  7. linux流量管家安装失败,解决Linux流量统计软件vnstat安装后无法统计流量的问题...
  8. js tree选中子集默认选中上级_原生js实现轮播图(两种方法)
  9. nlp n-gram_NLP中的单词嵌入:一键编码和Skip-Gram神经网络
  10. 高新计算机考试1-8视频,最新版计算机高新考试 PS 第1单元1-8.doc