1、绘制柱状图
1 import matplotlib 2 import matplotlib.pyplot as plt 3 4 # 显示中文标识 5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] 6 matplotlib.rcParams["axes.unicode_minus"] = False 7 8 # 柱状图中柱体标签值 9 x = [1,2,3,4,5] 10 11 # 柱状图中柱体的高度 12 y = [6,10,4,5,1] 13 14 # ========================柱状图========================= 15 plt.bar(x, # 柱体X轴标签值 16 y, # 柱体的高度 17 align="center", # 柱体对齐样式 18 color="b", # 柱体颜色 19 tick_label=["A","B","C","D","E"], # 刻度标签值 20 alpha=0.6) # 柱体透明度 21 plt.xlabel("测试难度") 22 plt.ylabel("试卷份数") 23 24 # 绘制网格线 25 plt.grid(axis="x", # 网格在x轴上 26 ls=":", # 网格样式 27 color="r", # 网格颜色 28 alpha=0.3) # 网格透明度 29 plt.show()
2、绘制条形图
1 import matplotlib 2 import matplotlib.pyplot as plt 3 4 # 显示中文标识 5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] 6 matplotlib.rcParams["axes.unicode_minus"] = False 7 8 # 柱状图中柱体标签值 9 x = [1,2,3,4,5] 10 11 # 柱状图中柱体的高度 12 y = [6,10,4,5,1] 13 14 # ========================条形图========================= 15 plt.barh(x, # 条形图X轴标签值 16 y, # 条形图的宽度 17 align="center", # 柱体对齐样式 18 color="b", # 条形图颜色 19 tick_label=["A","B","C","D","E"], # 刻度标签值 20 alpha=0.6) # 条形图透明度 21 plt.xlabel("试卷份数") 22 plt.ylabel("测试难度") 23 24 # 绘制网格线 25 plt.grid(axis="x", # 网格在x轴上 26 ls=":", # 网格样式 27 color="r", # 网格颜色 28 alpha=0.3) # 网格透明度 29 plt.show()
3、堆积柱状图
1 import matplotlib 2 import matplotlib.pyplot as plt 3 4 # 显示中文标识 5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] 6 matplotlib.rcParams["axes.unicode_minus"] = False 7 8 # 柱状图中柱体标签值 9 x = [1,2,3,4,5] 10 11 # 柱状图中柱体的高度(两份试卷) 12 y = [6,10,4,5,1] 13 y1 = [2,6,3,8,5] 14 15 # ========================堆积柱状图========================= 16 plt.bar(x, # 柱体X轴标签值 17 y, # 柱体的高度 18 align="center", # 柱体对齐样式 19 color="b", # 柱体颜色 20 tick_label=["A","B","C","D","E"], # 刻度标签值 21 alpha=0.6, # 柱体透明度 22 label="班级A") 23 plt.bar(x, # 柱体X轴标签值 24 y1, # 柱体的高度 25 bottom=y, # 柱状图的起始位置 26 align="center", # 柱体对齐样式 27 color="c", # 柱体颜色 28 alpha=0.6, # 柱体透明度 29 label="班级B") 30 plt.xlabel("测试难度") 31 plt.ylabel("试卷份数") 32 33 # 添加图例 34 plt.legend() 35 plt.show()
4、堆积条形图
1 import matplotlib 2 import matplotlib.pyplot as plt 3 4 # 显示中文标识 5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] 6 matplotlib.rcParams["axes.unicode_minus"] = False 7 8 # 柱状图中柱体标签值 9 x = [1,2,3,4,5] 10 11 # 柱状图中柱体的高度(两份试卷) 12 y = [6,10,4,5,1] 13 y1 = [2,6,3,8,5] 14 15 # ========================堆积条形图========================= 16 plt.barh(x, # 条形图X轴标签值 17 y, # 条形图的宽度 18 align="center", # 条形图对齐样式 19 color="b", # 条形图颜色 20 tick_label=["A","B","C","D","E"], # 刻度标签值 21 alpha=0.6, # 条形图透明度 22 label="班级A") 23 plt.barh(x, # 条形图X轴标签值 24 y1, # 条形图的宽度 25 left=y, # 条形图的起始位置 26 align="center", # 条形图对齐样式 27 color="c", # 条形图颜色 28 alpha=0.6, # 条形图透明度 29 label="班级B") 30 plt.xlabel("试卷份数") 31 plt.ylabel("测试难度") 32 33 # 添加图例 34 plt.legend() 35 plt.show()
5、多数据并列柱状图
1 import matplotlib 2 import matplotlib.pyplot as plt 3 import numpy as np 4 5 # 显示中文标识 6 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] 7 matplotlib.rcParams["axes.unicode_minus"] = False 8 x = np.arange(5) 9 y = [6,10,4,5,1] 10 y1 = [2,6,3,8,5] 11 12 # =================多数据并列柱状图================= 13 plt.bar(x=x, # x轴坐标的刻度 14 height=y, # 柱状图的高度 15 width=0.35, # 柱状图的宽度 16 color="c", # 柱状图的颜色 17 align="center", # 柱状图的对齐样式 18 label="班级A", # 柱状图的标签 19 alpha=0.5) # 柱状图的透明度 20 plt.bar(x=x+0.35, 21 height=y1, 22 width=0.35, 23 color="b", 24 align="center", 25 label="班级B", 26 alpha=0.5) 27 plt.xlabel("测试难度") 28 plt.ylabel("试卷份数") 29 plt.xticks(ticks=x+0.35/2, # 两个柱状图的中间 30 labels=["A","B","C","D","E"])# 在这两个柱状图中间用标签标示 31 # 显示图例 32 plt.legend() 33 plt.show()
6、多数据并列条状图
1 import matplotlib 2 import matplotlib.pyplot as plt 3 import numpy as np 4 5 # 显示中文标识 6 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] 7 matplotlib.rcParams["axes.unicode_minus"] = False 8 x = np.arange(5) 9 y = [6,10,4,5,1] 10 y1 = [2,6,3,8,5] 11 12 # =================多数据并列条状图================= 13 plt.barh(y=x, # x轴坐标的刻度 14 width=y, # 柱状图的宽度 15 height=0.35, # 柱状图的高度 16 color="c", # 柱状图的颜色 17 align="center", # 柱状图的对齐样式 18 label="班级A", # 柱状图的标签 19 alpha=0.5) # 柱状图的透明度 20 plt.barh(y=x+0.35, 21 width=y1, 22 height=0.35, 23 color="b", 24 align="center", 25 label="班级B", 26 alpha=0.5) 27 plt.xlabel("试卷份数") 28 plt.ylabel("测试难度") 29 plt.yticks(ticks=x+0.35/2, # 两个柱状图的中间 30 labels=["A","B","C","D","E"])# 在这两个柱状图中间用标签标示 31 # 显示图例 32 plt.legend() 33 plt.show()
7、hatch柱状图的填充样式
1 import matplotlib 2 import matplotlib.pyplot as plt 3 4 # 显示中文标识 5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] 6 matplotlib.rcParams["axes.unicode_minus"] = False 7 8 x = [1,2,3,4,5] 9 y = [6,10,4,5,1] 10 # ======================hatch柱状图的填充样式================= 11 plt.bar(x=x, # X轴上的刻度 12 height=y, # 柱状图的高度 13 align="center", # 柱状图的对齐样式 14 color="c", # 柱状图的颜色 15 tick_label=["A","B","C","D","E"], # 柱状图X轴的替换标签 16 hatch="*") # 柱状图的填充样式,可选/,|,\\,-,*等 17 plt.xlabel("测试难度") 18 plt.ylabel("试卷份数") 19 plt.show()
8、堆积折线图
1 import matplotlib.pyplot as plt 2 import numpy as np 3 4 x = np.arange(1,6,1) 5 y = [0,4,3,5,6] 6 y1 = [1,3,4,2,7] 7 y2 = [3,4,1,6,5] 8 9 labels = ["RedPlanet","GreenPlanet","BluePlanet"] 10 colors = ["r","g","b"] 11 12 # ==================堆积折线图===================== 13 plt.stackplot(x, # X轴坐标刻度 14 y, # 红色堆积块数据 15 y1, # 绿色堆积块数据 16 y2, # 蓝色堆积块数据 17 labels=labels, # 堆积块标签 18 colors=colors) # 堆积块填充颜色 19 plt.grid(axis="y") 20 plt.legend(loc="upper left") 21 plt.show()
9、broken_barh绘制间断条形图
1 import matplotlib 2 import matplotlib.pyplot as plt 3 import numpy as np 4 5 # 显示中文标识 6 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] 7 matplotlib.rcParams["axes.unicode_minus"] = False 8 9 # =====================broken_barh绘制间断条形图==================== 10 plt.broken_barh([(30,100), # 起点从x轴数值为30的地方沿X轴正方形移动100个单位 11 (180,50), 12 (260,70)], 13 (20,8), # 起点从Y轴数值为20的地方沿Y轴正方形移动8个单位 14 facecolors="#1f78b4") # 填充颜色 15 plt.broken_barh([(60,90), 16 (190,20), 17 (230,30), 18 (280,60)], 19 (10,8), 20 facecolors=("c","r","g","b")) 21 plt.xlim(0,360) 22 plt.ylim(5,35) 23 plt.xlabel("演出时间") 24 plt.xticks(np.arange(0,361,60)) 25 plt.yticks(ticks=[15,25],labels=["歌剧院A","歌剧院B"]) 26 plt.grid(ls="-",color="gray") 27 plt.title("不同地区的歌剧院演出时间比较") 28 plt.show()
10、step绘制阶梯图
1 import matplotlib.pyplot as plt 2 import numpy as np 3 4 # 返回10个指定间隔(1-10)内的等距数字 5 x = np.linspace(1,10,10) 6 y = np.sin(x) 7 8 # =======================step绘制阶梯图========================= 9 plt.step(x, 10 y, 11 color="c", # 线条颜色 12 where="pre",# 表示在X轴上的取值对应到Y轴上的数值向左侧相邻点绘制水平线(左开右闭) 13 # where="post",# 表示在X轴上的取值对应到Y轴上的数值向右侧相邻点绘制水平线(左闭右开) 14 lw=2) # 线条宽度 15 plt.xlim(0,11) 16 plt.xticks(np.arange(1,11,1)) 17 plt.ylim(-1,1) 18 plt.show()
11、hist直方图
# ========================================定量数据的分布展示(连续)========================================= import matplotlib import matplotlib.pyplot as plt import numpy as np # 显示中文标识 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] matplotlib.rcParams["axes.unicode_minus"] = False # 随机返回100个0到100的整形数组 scoresT = np.random.randint(0,100,100) # 从0到101当中确定10个柱体个数,如[0,10),[10,20)...[90,100] bins = range(0,101,10) # ===================hist直方图==================== plt.hist(x=scoresT, # 连续型输入数据 bins=bins, # 用于确定柱体的个数或柱体的边缘范围 color="c", # 柱体填充颜色 histtype="bar",# 柱体类型 rwidth=10) # 柱体宽度 plt.xlabel("测试成绩") plt.ylabel("学生人数") plt.show()
12、hist堆积直方图
1 import matplotlib 2 import matplotlib.pyplot as plt 3 import numpy as np 4 5 # 显示中文标识 6 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] 7 matplotlib.rcParams["axes.unicode_minus"] = False 8 9 # 随机返回100个0到100的整形数组 10 scoresT1 = np.random.randint(0,100,100) 11 scoresT2 = np.random.randint(0,100,100) 12 13 x = [scoresT1,scoresT2] 14 color = ["c","r"] 15 labels = ["班级A","班级B"] 16 17 # 从0到101当中确定10个柱体个数,如[0,10),[10,20)...[90,100] 18 bins = range(0,101,10) 19 20 # ===================hist堆积直方图==================== 21 plt.hist(x=x, # 连续型输入数据 22 bins=bins, # 用于确定柱体的个数或柱体的边缘范围 23 color=color, # 柱体填充颜色 24 histtype="bar",# 柱体类型 25 rwidth=10, # 柱体宽度 26 stacked=True, # 表示堆积直方图,若为FALSE则直方图并排而不是堆积 27 label=labels) 28 plt.xlabel("测试成绩") 29 plt.ylabel("学生人数") 30 plt.title("不同班级的测试成绩的直方图") 31 plt.legend(loc="upper left") 32 plt.show()
13、hist堆积阶梯型直方图
1 import matplotlib 2 import matplotlib.pyplot as plt 3 import numpy as np 4 5 # 显示中文标识 6 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] 7 matplotlib.rcParams["axes.unicode_minus"] = False 8 9 # 随机返回100个0到100的整形数组 10 scoresT1 = np.random.randint(0,100,100) 11 scoresT2 = np.random.randint(0,100,100) 12 13 x = [scoresT1,scoresT2] 14 color = ["c","r"] 15 labels = ["班级A","班级B"] 16 17 # 从0到101当中确定10个柱体个数,如[0,10),[10,20)...[90,100] 18 bins = range(0,101,10) 19 20 # ===================hist堆积阶梯型直方图==================== 21 plt.hist(x=x, # 连续型输入数据 22 bins=bins, # 用于确定柱体的个数或柱体的边缘范围 23 color=color, # 柱体填充颜色 24 histtype="stepfilled",# 柱体类型 25 rwidth=10, # 柱体宽度 26 stacked=True, # 表示堆积直方图,若为FALSE则直方图并排而不是堆积 27 label=labels) 28 plt.xlabel("测试成绩") 29 plt.ylabel("学生人数") 30 plt.title("不同班级的测试成绩的直方图") 31 plt.legend(loc="upper left") 32 plt.show()
14、pie绘制分裂饼图
1 # ========================================定性数据的分布展示(离散)========================================= 2 import matplotlib 3 import matplotlib.pyplot as plt 4 5 # 显示中文标识 6 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] 7 matplotlib.rcParams["axes.unicode_minus"] = False 8 9 # 标记每份饼片的文本标签内容 10 labels = ["A难度水平","B难度水平","C难度水平","D难度水平"] 11 students = [0.35,0.15,0.20,0.3] # 难度占比 12 colors = ["r","g","b","c"] # 饼片的填充颜色 13 explode = (0.3,0.1,0.1,0.1) # 饼片边缘偏离半径的百分比 14 15 # ========================pie绘制分裂饼图========================== 16 plt.pie(x=students, # 难度占比 17 explode=explode, # 饼片边缘偏离半径的百分比 18 labels=labels, # 标记饼片的文本标签内容 19 autopct="%3.1f%%", # 饼片文本标签内容对呀的数值百分比样式 20 startangle=45, # 从x轴作为其实位置,第一个饼片逆时针旋转的角度 21 shadow=True, # 是否绘制饼片的阴影 22 colors=colors) # 每份饼片的颜色 23 plt.title("选择不同难度测试试卷的学生百分比") 24 plt.show()
15、pie绘制非分裂饼图
1 import matplotlib 2 import matplotlib.pyplot as plt 3 4 # 显示中文标识 5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] 6 matplotlib.rcParams["axes.unicode_minus"] = False 7 8 # 标记每份饼片的文本标签内容 9 labels = ["A难度水平","B难度水平","C难度水平","D难度水平"] 10 students = [0.35,0.15,0.20,0.3] # 难度占比 11 colors = ["r","g","b","c"] # 饼片的填充颜色 12 13 # ========================pie绘制非分裂饼图========================== 14 plt.pie(x=students, # 难度占比 15 labels=labels, # 标记饼片的文本标签内容 16 autopct="%3.1f%%", # 饼片文本标签内容对呀的数值百分比样式 17 startangle=45, # 从x轴作为其实位置,第一个饼片逆时针旋转的角度 18 pctdistance=0.7, # 控制百分比显示位置(以半径长度比例值作为显示位置依据) 19 labeldistance=1.2, # 控制文本标签显示位置(以半径长度比例值作为显示位置依据) 20 colors=colors, # 每份饼片的颜色 21 ) 22 plt.title("选择不同难度测试试卷的学生百分比") 23 plt.show()
16、内嵌饼图
1 import matplotlib 2 import matplotlib.pyplot as plt 3 4 # 显示中文标识 5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] 6 matplotlib.rcParams["axes.unicode_minus"] = False 7 8 9 elements = ["面粉","砂糖","奶油","草莓酱","坚果"] # 面包的主要成分 10 weight1 = [40,15,20,10,15] # 面包主要成分的比重1 11 weight2 = [30,25,15,20,10] # 面包主要成分的比重1 12 13 outer_colors = ["r","g","b","c","m"] # 内嵌饼图外层颜色 14 inner_colors = ["r","g","b","c","m"] # 内嵌饼图内层颜色 15 16 # ==========================内嵌饼图(外层)============================ 17 # wedges:饼片。texts:分类标签的文本列表。autotexts:百分比部分的文本列表 18 wedges1,texts1,autotexts1 = plt.pie(x=weight1, # 难度占比 19 autopct="%3.1f%%", # 饼片文本标签内容对呀的数值百分比样式 20 radius=1, # 外层饼图半径 21 pctdistance=0.85, 22 colors=outer_colors, # 外层饼图颜色 23 textprops=dict(color="w"), # 设置饼图中显示百分比例数字的字体颜色 24 wedgeprops=dict(width=0.3,edgecolor="w")) # 环的宽度,还有环的最外侧的边界颜色 25 # ==========================内嵌饼图(内层)============================ 26 wedges2,texts2,autotexts2 = plt.pie(x=weight2, 27 autopct="%3.1f%%", 28 radius=0.7, 29 pctdistance=0.75, 30 colors=inner_colors, 31 textprops=dict(color="w"), 32 wedgeprops=dict(width=0.3,edgecolor="w")) 33 # 设置图例 34 plt.legend(wedges1, # 饼片数据 35 elements, # 面包的主要成分 36 fontsize=12, # 图例字体大小 37 title="配料表", # 图例标题 38 loc="center left", # 图例所在的位置(左中) 39 bbox_to_anchor=(0.91,0,0.3,1)) # 确定图例在轴的相对位置,第一个参数是x,第二个是y 40 41 # 设置百分比文本样式 42 plt.setp(autotexts1, # 外层饼图百分比 43 size=15, # 外层饼图百分比字体大小 44 weight="bold") # 外层饼图百分比字体样式 45 plt.setp(autotexts2, 46 size=15, 47 weight="bold") 48 49 # 设置分类标签样式 50 plt.setp(texts1, # 分类标签的文本列表 51 size=12) # 分类标签的文本列表字体大小 52 plt.title("不同果酱面包配料比例表的比较") 53 plt.show()
17、boxplot绘制箱线
1 import matplotlib 2 import matplotlib.pyplot as plt 3 import numpy as np 4 # 显示中文标识 5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] # 设置字体为SimHei 6 matplotlib.rcParams["axes.unicode_minus"] = False # 放弃使用unicode_minus 7 8 testA = np.random.randn(5000) 9 testB = np.random.randn(5000) 10 11 testList = [testA,testB] 12 labels = ["随机数生成器AlphaRM","随机数生成器BetaRMB"] 13 colors = ["c","r"] 14 15 whis = 1.6 16 width = 0.35 17 18 # ==========================boxplot绘制箱线图============================== 19 bplot = plt.boxplot(x=testList, # 绘制箱线图输入的数据 20 whis=whis, # 四分位间距倍数,用来确定箱须包含数据范围的大小 21 widths=width, # 设置箱体的宽度 22 sym="o", # 离散值群的标记样式 23 labels=labels, # 绘制每个数据集的刻度标签 24 notch=True, # 设置该参数会使箱体上下呈V型 25 patch_artist=True) # 是否给箱体添加颜色 26 for patch,color in zip(bplot["boxes"],colors): 27 patch.set_facecolor(color) 28 29 plt.ylabel("随机数值") 30 plt.title("生成器抗干扰能力的稳定性比较") 31 32 plt.grid(axis="y", 33 ls=":", 34 lw=1, 35 color="gray", 36 alpha=0.4) 37 plt.show()
18、boxplot绘制水平箱线图
1 import matplotlib 2 import matplotlib.pyplot as plt 3 import numpy as np 4 # 显示中文标识 5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] # 设置字体为SimHei 6 matplotlib.rcParams["axes.unicode_minus"] = False # 放弃使用unicode_minus 7 8 x = np.random.randn(1000) 9 10 # ==========================boxplot绘制水平箱线图============================== 11 bplot = plt.boxplot(x=x, # 绘制箱线图输入的数据 12 vert=False) # 是否绘制垂直水平箱线图,False为水平 13 14 plt.xlabel("随机数值") 15 plt.yticks([1],["随机数生成器AlphaRM"],rotation=90) 16 plt.title("生成器抗干扰能力的稳定性比较") 17 18 plt.grid(axis="x", 19 ls=":", 20 lw=1, 21 color="gray", 22 alpha=0.4) 23 plt.show()
19、boxplot不绘制离群值水平箱线图
1 import matplotlib 2 import matplotlib.pyplot as plt 3 import numpy as np 4 # 显示中文标识 5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] # 设置字体为SimHei 6 matplotlib.rcParams["axes.unicode_minus"] = False # 放弃使用unicode_minus 7 8 x = np.random.randn(1000) 9 10 # ==========================boxplot不绘制离群值水平箱线图============================== 11 bplot = plt.boxplot(x=x, # 绘制箱线图输入的数据 12 showfliers=False, # 不绘制离群值 13 vert=False) # 是否绘制垂直水平箱线图,False为水平 14 15 plt.xlabel("随机数值") 16 plt.yticks([1],["随机数生成器AlphaRM"],rotation=90) 17 plt.title("生成器抗干扰能力的稳定性比较") 18 19 plt.grid(axis="x", 20 ls=":", 21 lw=1, 22 color="gray", 23 alpha=0.4) 24 plt.show()
20、errorbar误差棒
1 import matplotlib.pyplot as plt 2 import numpy as np 3 4 x = np.linspace(0.1,0.6,10) 5 y = np.exp(x) 6 7 error = 0.05+0.15*x 8 lower_error = error 9 upper_error = 0.3*error 10 error_limit = [lower_error,upper_error] 11 12 # ======================errorbar误差棒============================ 13 plt.errorbar(x=x, # x轴上的数据点位置 14 y=y, # y轴上的数据点位置 15 yerr=error_limit, # 单一数值非对称形式误差范围 16 fmt=":o", # 数据点之间的标记样式和连接样式 17 ecolor="y", # 误差棒的颜色 18 elinewidth=4, # 误差棒线条的粗细 19 ms=5, # 数据点大小 20 mfc="c", # 数据点标记颜色 21 mec="r", # 数据点标记边缘颜色 22 capthick=1, # 误差棒边界横杠的厚度 23 capsize=2) # 误差棒边界横杠的大小 24 plt.xlim(0,0.7) 25 plt.show()
21、带误差棒的柱状图
1 import matplotlib 2 import matplotlib.pyplot as plt 3 import numpy as np 4 # 显示中文标识 5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] # 设置字体为SimHei 6 matplotlib.rcParams["axes.unicode_minus"] = False # 放弃使用unicode_minus 7 8 x = np.arange(5) # x 轴刻度 9 y = [100,68,79,91,82] # 芒果收割量 10 std_err = [7,2,6,10,5] # 每个园区的误差 11 error_attri = dict(elinewidth=2,ecolor="black",capsize=3) # 误差棒的属性设置 12 tick_label=["园区1","园区2","园区3","园区4","园区5"] 13 14 # =========================带误差棒的柱状图============================== 15 plt.bar(x, # X轴上的刻度 16 y, # 芒果的收割量 17 color="c", # 柱状图的颜色 18 width=0.6, # 柱状图的宽度 19 align="center", # 柱状图的样式 20 yerr=std_err, # 柱状图当中带误差棒的设置 21 error_kw=error_attri, # 误差棒的属性设置,如颜色粗细等 22 tick_label=tick_label) # 将x轴上的刻度进行替换 23 plt.xlabel("芒果种植区") 24 plt.ylabel("收割量") 25 plt.title("不同芒果种植区的单次收割量") 26 plt.grid(True,axis="y",ls=":",color="gray",alpha=0.4) 27 plt.show()
22、带误差棒的条形图
1 import matplotlib 2 import matplotlib.pyplot as plt 3 import numpy as np 4 # 显示中文标识 5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] # 设置字体为SimHei 6 matplotlib.rcParams["axes.unicode_minus"] = False # 放弃使用unicode_minus 7 8 x = np.arange(5) 9 y = [1200,2400,1800,2200,1600] 10 std_err = [150,100,180,130,80] 11 12 bar_height = 0.6 13 colors = ["r","g","b","c","m"] 14 15 plt.barh(x, 16 y, 17 height=bar_height, 18 color=colors, 19 align="center", 20 xerr=std_err, 21 tick_label=["家庭","小说","心理","科技","儿童"]) 22 plt.xlabel("订购数量") 23 plt.ylabel("图书种类") 24 plt.title("大型图书展销会的不同图书种类的采购情况") 25 plt.grid(True,axis="x",ls=":",color="r",alpha=0.4) 26 plt.xlim(0,2600) 27 plt.show()
23、带误差棒的多数据并列数据柱状图
1 import matplotlib 2 import matplotlib.pyplot as plt 3 import numpy as np 4 # 显示中文标识 5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] # 设置字体为SimHei 6 matplotlib.rcParams["axes.unicode_minus"] = False # 放弃使用unicode_minus 7 8 x = np.arange(5) # x 轴刻度 9 y1 = [100,68,79,91,82] # 芒果收割量 10 y2 = [120,75,70,78,85] 11 std_err1 = [7,2,6,10,5] # 每个园区的误差 12 std_err2 = [5,1,4,8,9] 13 error_attri = dict(elinewidth=2,ecolor="black",capsize=3) # 误差棒的属性设置 14 tick_label=["园区1","园区2","园区3","园区4","园区5"] 15 16 # =========================带误差棒的多数据并列数据柱状图============================== 17 plt.bar(x, # X轴上的刻度 18 y1, # 芒果的收割量 19 color="c", # 柱状图的颜色 20 width=0.4, # 柱状图的宽度 21 align="center", # 柱状图的样式 22 yerr=std_err1, # 柱状图当中带误差棒的设置 23 error_kw=error_attri, # 误差棒的属性设置,如颜色粗细等 24 label="2010") # 2010年的数据 25 plt.bar(x+0.4, # X轴上的刻度 26 y2, # 芒果的收割量 27 color="m", # 柱状图的颜色 28 width=0.4, # 柱状图的宽度 29 align="center", # 柱状图的样式 30 yerr=std_err2, # 柱状图当中带误差棒的设置 31 error_kw=error_attri, # 误差棒的属性设置,如颜色粗细等 32 label="2013") # 2013年的数据 33 34 plt.xlabel("芒果种植区") 35 plt.ylabel("收割量") 36 plt.xticks(x+0.4/2,tick_label) 37 plt.title("不同芒果种植区的单次收割量") 38 plt.grid(True,axis="y",ls=":",color="gray",alpha=0.4) 39 plt.legend() 40 plt.show()
24、带误差棒的堆叠柱状图
1 import matplotlib 2 import matplotlib.pyplot as plt 3 import numpy as np 4 # 显示中文标识 5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] # 设置字体为SimHei 6 matplotlib.rcParams["axes.unicode_minus"] = False # 放弃使用unicode_minus 7 8 x = np.arange(5) 9 y1 = [1200,2400,1800,2200,1600] 10 y2 = [1050,2100,1300,1600,1340] 11 std_err1 = [150,100,180,130,80] 12 std_err2 = [120,110,170,150,120] 13 bar_width = 0.6 14 tick_label=["家庭","小说","心理","科技","儿童"] 15 error_attri = dict(elinewidth=2,ecolor="black",capsize=0) # 误差棒的属性设置 16 17 # ============================带误差棒的堆叠柱状图============================== 18 plt.bar(x, # X轴刻度 19 y1, # 地区1的数据 20 width=bar_width, # 柱状图宽度 21 color="c", # 柱状图颜色 22 align="center", # 柱状图样式 23 yerr=std_err1, # 地区1的误差 24 label="地区1", # 标签 25 error_kw=error_attri) # 误差棒的属性,如颜色,粗细 26 plt.bar(x, 27 y2, 28 width=bar_width, 29 bottom=y1, # 在地区1的柱状图的基础上继续画柱状图 30 color="m", 31 align="center", 32 yerr=std_err2, 33 label="地区2", 34 error_kw=error_attri) 35 plt.xlabel("图书种类") 36 plt.ylabel("订购数量") 37 plt.title("大型图书展销会的不同图书种类的采购情况") 38 plt.grid(True,axis="x",ls=":",color="r",alpha=0.4) 39 plt.xticks(x,tick_label) 40 plt.legend() 41 plt.show()
原文:https://www.cnblogs.com/zhaco/p/11541430.html