matplotlib实践(4) 完善统计图形

2019-07-10  本文已影响0人  银色尘埃010

第四章 完善统计图形

这一部分主要介绍添加图例,标题格式,坐标轴刻度,丰富图标内容等方面。

4.1 添加图例和标题

在绘图区域会出现多个统计图形,需要对这些图形加以说明,使得其他人可以更好地观察。  
添加标签说明,标签说明就是图例。
通过绘制正弦、余弦曲线来说明添加图例和标题的操作方法。

4.1.1 图例和标题的设置

重点介绍legend() 和 title 方法。

使用Tex对文本进行渲染,符号为:r"$$", 在$$ 之间加入文本
# 代码 
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np

mpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = False
x = np.linspace(-2*np.pi,2*np.pi,200)
y = np.sin(x)
y1 = np.cos(x)

plt.plot(x,y,label=r"$\sin(x)$")
plt.plot(x,y1,label=r"$\cos(x)$")
plt.legend(loc="lower left")
plt.title("正弦和余弦曲线")

plt.show()
        
output_2_0.png

4.1.2 案例1—— 图例的展示样式调整

通过一个例子来深入了解,改变图例的样式。
比较常用的参数是loc, title也会使用    
plt.legend(loc = "upper left",ncol=3,bbox_to_anchor=(0.05,0.95),
      title="power function", shadow=True,fancybox=True)
其他的根据实际需要
x = np.arange(0,2.1,0.1)
y = np.power(x,3)
y1 = np.power(x,2)
y2 = np.power(x,1)

plt.plot(x,y,ls="-",lw=2, label="$x^3$")
plt.plot(x,y1,ls="-",lw=2,c="r", label="$x^2$")
plt.plot(x,y2,ls="-",lw=2, c ="y", label="$x^1$")

plt.legend(loc = "upper left",ncol=3,bbox_to_anchor=(0.05,0.95),
          title="power function", shadow=True,fancybox=True)
plt.show()
output_4_0.png

4.1.3 标题的展示样式的调整

主要通过title() 的参数进行调整, 主要的风格样式包括字体样式、字体大小、字体颜色等等。
x = np.linspace(-2,2,100)
y = np.exp(x)
plt.plot(x,y,ls="-",lw=2,c="r")
plt.title("center title")
plt.title("Left Demo",loc="left",
         fontdict={"size":"xx-large",
                "color":"y",
                "family":"TImes New Roman"})
plt.title("Right Demo",loc="right",family="Comic Sans MS",
         size = 20,
         style="oblique",
         color="c")
plt.show()
output_6_0.png

4.1.4 案例3——带图例的饼图

为饼图添加图例,实现绘图区域更加清晰的布局。
pie()函数,及其参数的调整。
elements = ["面粉","砂糖","奶油","草莓酱","坚果"]
weight=[40,15,20,10,15]
color = ["r","y","b","g","y"]
wedges,texts,autotexts = plt.pie(weight,
                                autopct="%3.1f%%",
                                textprops=dict(color="w"),
                                colors=color)
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()
output_8_0.png

4.2 调整刻度范围和刻度标签

主要使用xlim(),ylim() ,xticks(),yticks()等函数

subplot()用于绘制网格区域
x = np.linspace(-2*np.pi,2*np.pi,200)
y = np.sin(x)

plt.subplot(211)
plt.plot(x,y)

plt.subplot(212)
plt.xlim(-2*np.pi,2*np.pi)
plt.xticks([-2*np.pi,-3*np.pi/2.0,-1*np.pi,-1*np.pi/2.0,0,1*np.pi/2.0,1*np.pi,3*np.pi/2.0,2*np.pi],
           [r"$-2\pi$",r"$-3\pi/2$",r"$-\pi$",r"$-\pi/2$",r"$0$",r"$\pi/2$",r"$\pi$",r"$3\pi/2$",r"$2\pi$"])


plt.plot(x,y)
plt.show()
output_10_0.png

4.2.3 案例——逆序设置坐标轴

通过调整xlim(xmax,xmin),调整xmax和xmin的位置
time = np.arange(1,11,0.5)
machinePower = np.power(time,2)+0.7
plt.plot(time,machinePower,ls="-",lw=2,c="r")

plt.xlim(10,1)
plt.xlabel("使用年限")
plt.ylabel("机器功率")
plt.grid(ls=":",lw=1,c="gray",alpha=0.5)
plt.show()
output_12_0.png

4.3 向统计图形添加表格

为饼图添加表格
使用pie(),和 plt.table()
labels = ["A难度","B难度","C难度","D难度"]
students = [0.35,0.15,0.2,0.3]
explode = (0.1,0.1,0.1,0.1)
c = ["g","r","y","b"]

plt.pie(students,explode=explode,labels=labels,autopct="%1.1f%%",
       startangle=45,shadow=True,colors=c)

snum = [[350,150,200,300]]
rlabel = ["学生人数"]

plt.table(cellText=snum,
         cellLoc="center",
         colWidths=[0.1] * 4,
         colColours=c,
         colLabels=labels,
         rowLabels=rlabel,
         rowLoc="center",
         loc="bottom")
plt.show()
output_14_0.png

references

1、《Python数据可视化之matplotlib实践》 刘大成著

上一篇 下一篇

猜你喜欢

热点阅读