第四章:完善统计图形

1、添加图例和标题

 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 # 在-2pi到2pi之间取200个数据点
 9 x = np.linspace(-2*np.pi,2*np.pi,200)
10 y1 = np.sin(x)          # 正弦函数
11 y2 = np.cos(x)          # 余弦函数
12 
13 # 绘制正弦余弦函数图形,并通过label将标签添加到图例当中
14 plt.plot(x,y1,label=r"$sin(x)$")
15 plt.plot(x,y2,label=r"$cos(x)$")
16 
17 # 添加图例
18 plt.legend(loc="lower left")
19 
20 # 添加标题
21 plt.title("正弦函数与余弦函数的折线图")
22 
23 plt.show()

 2、图例的样式展示调整

 1 import  matplotlib.pyplot as plt
 2 import numpy as np
 3 x = np.arange(0,2.1,0.1)
 4 y1 = np.power(x,3)
 5 y2 = np.power(x,2)
 6 y3 = np.power(x,1)
 7 
 8 # 绘制指数函数。ls:表示线条样式。lw:表示线条宽度,c:表示线条颜色,label:表示图例里的标签
 9 plt.plot(x,y1,ls="-",lw=2,c="b",label="$x^{3}$")
10 plt.plot(x,y2,ls="--",lw=2,c="r",label="$x^{2}$")
11 plt.plot(x,y3,ls="-",lw=2,c="y",label="$x^{1}$")
12 
13 # ===========================图例的样式展示调整===========================
14 plt.legend(loc="upper left",            # 图例所在的位置
15            bbox_to_anchor=(0.05,0.95),  # 线框位置参数
16            ncol=3,                      # 设置图例分为3列展示
17            title="power function",      # 图例标签内容标题参数
18            shadow=True,                 # 线框阴影参数
19            fancybox=True)               # 线框圆角处理参数
20 plt.show()

 3、标题展示样式调整

 1 import  matplotlib.pyplot as plt
 2 import numpy as np
 3 
 4 x = np.linspace(-2,2,1000)
 5 y = np.exp(x)
 6 
 7 plt.plot(x,y,ls="-",lw=2,c="g")
 8 
 9 # ===========================标题展示样式调整==============================
10 plt.title("center mode")
11 plt.title("left mode",                          # 标题
12           loc="left",                           # 标题所在的位置
13           fontdict={"size":"xx-large",          # 字体大小
14                     "color":"r",                # 字体颜色
15                     "family":"Times New Roman"})# 字体类型
16 
17 plt.title("right mode",                         # 标题
18           loc="right",                          # 标题位置
19           family="Comic Sans MS",               # 字体
20           size=20,                              # 字体大小
21           style="oblique",                      # 字体风格样式
22           color="c")                            # 字体颜色
23 
24 plt.show()

 4、带图例的饼图

import  matplotlib
import  matplotlib.pyplot as plt

# 显示中文标识
matplotlib.rcParams["font.sans-serif"] = ["SimHei"]     # 设置字体为SimHei
matplotlib.rcParams["axes.unicode_minus"] = False       # 放弃使用unicode_minus

elements = ["面粉","砂糖","奶油","草莓酱","坚果"]
weight = [40,15,20,10,15]
colors = ["r","g","b","c","m"]

# wedges:饼片。texts:分类标签的文本列表。autotexts:百分比部分的文本列表
wedges,texts,autotexts = plt.pie(weight,                    # 比例占比
                                 autopct="%3.1f%%",         # 每片饼叶的百分比
                                 textprops=dict(color="w"), # 设置饼图中显示百分比例数字的字体颜色
                                 colors=colors)             # 每片饼叶的颜色
plt.legend(wedges,                          # 饼片数据在图例中的颜色
           elements,                        # 饼片的成分
           fontsize=12,                     # 图例的文字大小
           title="配料表",                  # 图例标题
           loc="center left",               # 图例的位置
           bbox_to_anchor=(0.91,0,0.3,1))   # 确定图例在轴的相对位置

# 设置百分比文本样式
plt.setp(autotexts,         # 饼图百分比
         size=15,           # 饼图百分比文字大小
         weight="bold")     # 饼图百分比字体

# 设置分类标签样式
plt.setp(texts,             # 分类标签的文本列表
         size=12)           # 分类标签的文本字体大小
plt.title("果酱面包配料比例表")
plt.show()

 5、调整刻度范围和刻度标签的方法

 1 import matplotlib.pyplot as plt
 2 import numpy as np
 3 
 4 # 从-2pi到2pi选取200个数据点
 5 x = np.linspace(-2*np.pi,2*np.pi,200)
 6 y = np.sin(x)
 7 
 8 # 在画布的第一个位置画正弦函数(211表示2行1列第1个画布)
 9 plt.subplot(211)
10 plt.xlim(-2*np.pi,2*np.pi)  # 第一个图的x轴刻度范围
11 plt.plot(x,y)
12 
13 # 在画布的第一个位置画正弦函数(212表示2行1列第2个画布)
14 plt.subplot(212)
15 plt.xlim(-2*np.pi,2*np.pi)  # 第二个图的x轴刻度范围
16 plt.xticks([-2*np.pi,       # 将第一个数组内的刻度替换成第二个数组内的刻度
17             -3*np.pi/2,
18             -1*np.pi,
19             -1*np.pi/2,
20             0,
21             np.pi/2,
22             np.pi,
23             3*np.pi/2,
24             2*np.pi],
25            [r"$-2pi$",
26             r"$-3pi/2$",
27             r"$-pi$",
28             r"$-pi/2$",
29             r"$0$",
30             r"$pi/2$",
31             r"$pi$",
32             r"$3pi/2$",
33             r"$2pi$"])
34 plt.plot(x,y)
35 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"]     # 设置字体为SimHei
 7 matplotlib.rcParams["axes.unicode_minus"] = False       # 放弃使用unicode_minus
 8 
 9 time = np.arange(1,11,0.5)
10 machinePower = np.power(time,2)+0.7
11 
12 plt.plot(time,          # x轴使用时间年限
13          machinePower,  # y轴机器功率
14          linestyle="-", # 曲线样式
15          linewidth=2,   # 曲线宽度
16          color="red")   # 曲线颜色
17 
18 plt.xlim(10,1)          # 逆序设置坐标轴刻度
19 
20 plt.xlabel("使用年限")
21 plt.ylabel("机器功率")
22 
23 plt.title("机器损耗曲线")
24 
25 plt.grid(ls=":",lw=1,color="g",alpha=0.5)
26 plt.show()

 7、向统计图当中添加表格

 1 import  matplotlib
 2 import  matplotlib.pyplot as plt
 3 
 4 # 显示中文标识
 5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"]     # 设置字体为SimHei
 6 matplotlib.rcParams["axes.unicode_minus"] = False       # 放弃使用unicode_minus
 7 
 8 labels = "A难度水平","B难度水平","C难度水平","D难度水平"
 9 students = [0.35,0.15,0.2,0.3]
10 explode = (0.1,0.1,0.1,0.1)
11 colors = ["r","g","b","m"]
12 plt.pie(students,
13         explode=explode,    # 饼片边缘偏离半径的百分比
14         labels=labels,      # 饼片说明标签
15         autopct="%1.1f%%",  # 数值百分比样式
16         startangle=45,      # 第一个饼片逆时针旋转角度
17         shadow=True,        # 有阴影设置
18         colors=colors)      # 饼片颜色
19 
20 plt.title("选择不同难度测试试卷的学生百分比")
21 
22 colLabels = ["A难度水平","B难度水平","C难度水平","D难度水平"]
23 rowLabels = ["学生选择试卷人数"]
24 studentValues = [[350,150,200,300]]
25 colColours = ["r","g","b","m"]
26 
27 plt.table(cellText=studentValues,   # 表格的数值
28           cellLoc="center",         # 表格中的数据对齐方式
29           colWidths=[0.2]*4,        # 表格每列的宽度
30           colLabels=colLabels,      # 表格中每列的列名称
31           colColours=colColours,    # 表格每列的列名称所在单元格的颜色
32           rowLabels=rowLabels,      # 表格每行的行名称
33           rowLoc="center",          # 表格每行的行名称对齐方式
34           loc="bottom")             # 表格在画布中的位置
35 
36 plt.savefig("D:数据分析第二章")   # 保存图片
37 plt.show()

原文地址:https://www.cnblogs.com/zhaco/p/11542174.html