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
本博主新开公众号, 希望大家能扫码关注一下,十分感谢大家。