python画图学习之柱形图六

1.画组合柱形图,并且设置了误差线。

import numpy as np
import matplotlib.pyplot as plt

#设置分辨率
my_dpi = 96

#设置图的尺寸(480x480)
plt.figure(figsize=(480 / my_dpi, 480 / my_dpi), dpi=my_dpi)

barWidth = 0.3

#设置蓝色柱子的高度
bars1 = [10, 9, 2]

#设置青色柱子的高度
bars2 = [10.8, 9.5, 4.5]

#设置误差线的高度 (bars1)
yer1 = [0.5, 0.4, 0.5]

#设置误差线的高度(bars2)
yer2 = [1, 0.7, 1]

r1 = np.arange(len(bars1))
r2 = [x + barWidth for x in r1]

#创建蓝色柱子
plt.bar(r1, bars1, width = barWidth, color = 'blue', edgecolor = 'black', yerr=yer1, capsize=7, label='poacee')

#创建青色柱子
plt.bar(r2, bars2, width = barWidth, color = 'cyan', edgecolor = 'black', yerr=yer2, capsize=7, label='sorgho')

plt.xticks([r + barWidth for r in range(len(bars1))], ['cond_A', 'cond_B', 'cond_C'])

plt.ylabel('height')

#创建图例
plt.legend()

#保存图片
plt.savefig('#8_confidence_interval.png')

#展示图片
plt.show()

2. 叠加的柱形图。

import matplotlib.pyplot as plt

#设置分辨率
my_dpi = 96

#设置图的尺寸(480x480)
fig, ax1 = plt.subplots(figsize=(480 / my_dpi, 480 / my_dpi), dpi=my_dpi)

ax2 = ax1.twinx()

labels = " A: Stars, White Dwarfs and Solar System\n B: White Dwarf Binaries, Neutron Star Binaries, Cataclysmic Variables, ULXs and Black Holes\n C: Supernovae, Supernova Remnants, Diffuse (galactic) Emission and Isolated Neutron Stars\n D: Galaxies and Galactic Surveys\n E: Active Galactic Nuclei, Quasars and BL-Lac Objects\n F: Groups of Galaxies, Clusters of Galaxies and Superclusters\n G: Cosmology, Extragalactic Deep Fields and Area Surveys"

#自定义的textBox (data coordinates: x y, text, style)
plt.text(-2.7, -0.45, labels,  color='black', size=7,
         bbox=dict(facecolor='none', edgecolor='black', boxstyle='round,pad=0.1'))

#绿色柱子的高度
bars1 = [0.3, 0.05, 0.1, 0.15, 0.25, 0.05, 0.19]

#橙色柱子的高度
bars2 = [0.25, 0.55, 0.55, 0.25, 0.3, 0.4, 0.4]

#蓝色柱子的高度
bars3 = [0.45, 0.4, 0.35, 0.6, 0.45, 0.55, 0.41]

#bars1 + bars2 的和
bars = [0.55, 0.6, 0.65, 0.4, 0.55, 0.45, 0.59]

#柱子在x轴上的位置
r = [0,1.6,3.2,4.1,6.9,9.9,11]

#设置y轴
ytick = [0.10, 0.45, 0.80]

barWidth = [0.8,2,0.8,0.5,4.5,1,0.6]

names = ['A','B','C','D','E','F','G']

name = ['A', 'B', 'C']

#创建绿色柱子
plt.bar(r, bars1, color='#B3E2CD', width=barWidth, edgecolor='black')

#创建橙色柱子
plt.bar(r, bars2, bottom=bars1, color='#FDCDAC',width=barWidth, edgecolor='black')

#创建蓝色柱子
plt.bar(r, bars3, bottom=bars, color='#CBD5E8',width=barWidth, edgecolor='black')

plt.xticks(r, names)

plt.yticks(ytick, name)

plt.title("XMM AO7 accepted proposals", fontweight='bold')

ax1.set_xlabel("Science Category")

plt.ylabel("Priority")

plt.subplots_adjust(bottom=0.33, top=0.95)

#保存图片
plt.savefig('#9_plotting_factor_vs_factor.png')

#展示图片
plt.show()

 

 3.不同颜色分类柱形图示例。

import matplotlib.pyplot as plt

#设置分辨率
my_dpi = 96

#设置图的尺寸(480x480)
plt.figure(figsize=(480 / my_dpi, 480 / my_dpi), dpi=my_dpi)

#柱子的宽度
barWidth = 0.9

#设置紫色柱子的高度
bars1 = [3, 3, 1]

#设置灰色柱子的高度
bars2 = [4, 2, 3]

#设置绿色柱子的高度
bars3 = [4, 6, 7, 10, 4, 4]

#设置y轴高度
bars4 =  bars1 + bars2 + bars3

#设置紫色柱子在x轴上位置
r1 = [1,5,9]

#设置灰色柱子在x轴上位置
r2 = [2,6,10]

#设置绿色柱子在x轴上位置
r3 = [3,4,7,8,11,12]

#设置柱子在x轴上位置
r4 = r1 + r2 + r3

#创建紫色柱子
plt.bar(r1, bars1, width = barWidth, color = (0.3,0.1,0.4,0.6), label='Alone')

#创建灰色柱子
plt.bar(r2, bars2, width = barWidth, color = (0.3,0.5,0.4,0.6), label='With Himself')

#创建绿色柱子
plt.bar(r3, bars3, width = barWidth, color = (0.3,0.9,0.4,0.6), label='With other genotype')

#创建图例
plt.legend()

#每个小节下方的文本旋转90°
plt.xticks([r + barWidth for r in range(len(r4))], ['DD', 'with himself', 'with DC', 'with Silur', 'DC', 'with himself', 'with DD', 'with Silur', 'Silur', 'with himself', 'with DD', 'with DC'], rotation=90)

#创建标签
label = ['n = 6', 'n = 25', 'n = 13', 'n = 36', 'n = 30', 'n = 11', 'n = 16', 'n = 37', 'n = 14', 'n = 4', 'n = 31', 'n = 34']

#每个条形图顶部的文本
for i in range(len(r4)):
    plt.text(x = r4[i]-0.5 , y = bars4[i]+0.1, s = label[i], size = 6)

#调整图的位置
plt.subplots_adjust(bottom= 0.2, top = 0.98)

#保存图片
plt.savefig('#10_barplot_with_number_of_observations.png')

#展示图片
plt.show()

本文转自:https://github.com/holtzy/The-Python-Graph-Gallery/blob/master/PGG_notebook.py 

本博主新开公众号, 希望大家能扫码关注一下,十分感谢大家。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值