第二章:使用统计函数绘制简单图形

眉间皱痕 提交于 2019-11-30 00:04:39

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 # X/Y轴刻度
 9 x = [1,2,3,4,5,6,7,8]
10 y = [3,1,4,5,8,9,7,2]
11 
12 # ==============绘制条形图=================
13 plt.bar(x,
14         y,
15         align="center",                                 # 排列方式
16         color="c",                                      # 填充颜色
17         tick_label=["q","a","c","e","r","j","b","p"],   # 将X轴上的刻度替换成指定编号
18         hatch="/")                                      # 图形填充值,可取值为: / ,  , | , - , + , x , o , O , . , *
19 
20 # X/Y轴标签
21 plt.xlabel("箱子编号")
22 plt.ylabel("箱子重量(kg)")
23 
24 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 # X/Y轴刻度
 9 x = [1,2,3,4,5,6,7,8]
10 y = [3,1,4,5,8,9,7,2]
11 
12 # ==============绘制水平条形图=================
13 plt.barh(x,
14         y,
15         align="center",                                 # 排列方式
16         color="c",                                      # 填充颜色
17         tick_label=["q","a","c","e","r","j","b","p"],   # 将X轴上的刻度替换成指定编号
18         hatch="/")                                      # 图形填充值,可取值为: / ,  , | , - , + , x , o , O , . , *
19 
20 # X/Y轴标签
21 plt.xlabel("箱子重量(kg)")
22 plt.ylabel("箱子编号")
23 
24 plt.show()

 

 3、绘制直方图

 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 # 随机生成0,9的100个整数
10 x = np.random.randint(0,10,100)
11 bins = range(0,11,1)
12 
13 # ================绘制直方图================
14 plt.hist(x=x,                       # 分布数据
15          bins=bins,                 # 指定共有几个箱子,也就是有几条条形图
16          color="g",                 # 条形图颜色
17          histtype="barstacked",     # 条形图类型,可选bar,barstacked,step,stepfilled,默认为bar
18          align="mid",               # 直方图样式,可选 left mid right
19          rwidth=0.8,                # 柱子与柱子之间的距离,默认是0
20          alpha=0.6)                 # 透明度
21 # X/Y轴标签
22 plt.xlabel("箱子重量(kg)")
23 plt.ylabel("销售个数(个)")
24 
25 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 kinds = "简易箱","保温箱","行李箱","密封箱"
10 
11 # 每种数据的填充颜色
12 colors = ["r","g","b","c"]
13 
14 # 每种数据的占比
15 soldNums = [0.05,0.45,0.15,0.35]
16 
17 # ===================绘制饼图====================
18 plt.pie(x=soldNums,         # 每种数据的占比
19         labels=kinds,       # 饼图外侧显示的说明文字
20         autopct="%3.1f%%",  # 控制饼图内百分比设置,'%1.1f'指小数点前后位数(没有用空格补齐)
21         startangle=60,      # 起始绘制角度,默认图是从x轴正方向逆时针画起,如设定=90则从y轴正方向画起
22         colors=colors)      # 每快饼的填充颜色
23 
24 # 标题
25 plt.title("不同箱子的销售占比")
26 plt.show()

 

 5、在极坐标轴上绘制折线图

 1 import matplotlib.pyplot as plt
 2 import numpy as np
 3 
 4 # 从0到2pi取12个数.endpoint:如果为False则最后一个数不为2pi,如果为True则最后一个数为2pi
 5 theta = np.linspace(start=0.0,stop=2*np.pi,num=12,endpoint=False)
 6 
 7 # 创建一个给定类型(12个)的数组,将其填充在一个均匀分布的随机样本[0, 1)中
 8 r = 30*np.random.rand(12)
 9 
10 # ===============在极坐标轴上绘制折线图=================
11 plt.polar(theta,                # 每个标记所在的射线与极径的夹角
12           r,                    # 每个标记到原点的距离
13           color="chartreuse",   # 颜色
14           linewidth=2,          # 线宽
15           marker="*",           # 标志点
16           mfc="b",              # 数据点的颜色
17           ms=10)                # 标志点大小
18 plt.show()

 

 6、绘制气泡图

 1 import matplotlib.pyplot as plt
 2 from matplotlib import cm
 3 import numpy as np
 4 
 5 # 生成指定维度(100维度)的服从标准正态分布的随机数
 6 a = np.random.randn(100)
 7 b = np.random.randn(100)
 8 
 9 # ==================绘制气泡图===================
10 plt.scatter(x=a,                    # x轴上的数值
11             y=b,                    # y轴上的数值
12             s=np.power(10*a+20*b,2),# 散点标记的大小((数组a*10+数组b*20)的平方)
13             c=np.random.rand(100),  # 散点标记的颜色
14             cmap=cm.RdYlBu,         # 将浮点数映射成颜色的颜色映射率
15             marker="o")             # 标记点(气泡)
16 plt.show()

 

 7、绘制棉棒图

 1 import matplotlib.pyplot as plt
 2 import numpy as np
 3 
 4 # 从0到2pi取20个数
 5 x = np.linspace(0.5,2*np.pi,20)
 6 
 7 # 生成指定维度(20维度)的服从标准正态分布的随机数
 8 y = np.random.randn(20)
 9 
10 # ====================绘制棉棒图=================
11 plt.stem(x,             # 指定棉棒的x轴基线上的位置
12          y,             # 绘制棉棒的长度
13          linefmt="-",   # 棉棒的样式
14          markerfmt="o", # 棉棒末端的样式
15          basefmt="-")   # 指定基线的样式
16 plt.show()

 

 8、绘制箱线图

 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 # 生成指定维度(1000维度)的服从标准正态分布的随机数
10 x = np.random.randn(1000)
11 
12 # ===================绘制箱线图=====================
13 plt.boxplot(x)
14 
15 plt.xticks([1],["随机数生成器AlphaRM"])
16 
17 # y轴上的标签
18 plt.ylabel("随机数值")
19 
20 # 标题
21 plt.title("随机数生成器抗干扰能力的稳定性")
22 
23 # 绘制网格线
24 plt.grid(axis="y",      # 在y轴上绘制网格线
25          ls=":",        # 网格线样式
26          color="gray",  # 网格线颜色
27          alpha=0.4)     # 网格线透明度
28 plt.show()

 

 9、绘制误差棒图

 1 import matplotlib.pyplot as plt
 2 import numpy as np
 3 
 4 # 从0.1到0.6区6个值
 5 x = np.linspace(0.1,0.6,6)
 6 
 7 # 指数函数
 8 y = np.exp(x)
 9 
10 # ===================绘制误差棒图==================
11 plt.errorbar(x=x,           # 数据点的水平位置
12              y=y,           # 数据点的垂直位置
13              fmt="bo:",     # 数据点的标记样式以及相互之间连接线样式
14              yerr=0.2,      # y轴方向的数据点的误差计算方法
15              xerr=0.02,     # x轴方向的数据点的误差计算方法
16              ecolor="r",    # 误差棒的颜色
17              elinewidth=2,  # 误差棒线条的粗细大小
18              capsize=10,    # 误差棒边界横杠的大小
19              capthick=4,    # 误差棒边界横杠的厚度
20              ms=10,         # 数据点的大小
21              mfc="g",       # 数据点的颜色
22              mec="m")       # 数据点边缘的颜色
23 # x轴上的刻度
24 plt.xlim(0,0.7)
25 plt.show()

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!