0.matplotlib自带的TeX功能
用Tex对文本内容进行渲染,通过使用r"$$" 模式,将表达式\sin和\cos嵌入一对美元符号之间。在“r"$text1\text2$" ”中的非数学表达式文本text1会以斜体形式输出,并且最终输出时就会呈现印刷级别的文档效果。需要说明的是,在字符串r"$text1\text2$" 的开始之处有一个标记 “r” 表示该字符串是raw strings,字符串按照TeX规范进行解析。
1.添加图列legend()
bbox_to_anchor线框位置参数:四元元组,Axes坐标系统。第1个元素代表距离画布左侧的x轴长度的倍数的距离;第2个元素代表距离画布底部的y轴长度的倍数的距离;第3个元素代表x轴长度的倍数的线框长度;第4个元素代表y轴长度的倍数的线框宽度。代码中的语句"legend(bbox_ to_ anchor-=(0.05,0.95))” 会将图例放在距离坐标轴左边0.1、底部7.6的位置。
loc位置参数:不仅可以用字符串表示,还可以用对应的数字表示。字符串的字面意思可以理解放的位置。
位置的字符串参数 | 位置的数字参数 |
---|
upper right | 1 | upper left | 2 | lower left | 3 | lower right | 4 | center left | 6 | center right | 7 | lower center | 8 | upper center | 9 | center | 10 |
shadow线框是否添加阴影。 fancybox线框圆角或直角。 ncol图列里一行放几个参数,这里一共三个,三个也就放的一行。ncol=1,那么就会竖着放。
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.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, label='$x^2$')
plt.plot(x, y2, ls='-', lw=2, label='$x^1$')
plt.legend(loc='upper left', bbox_to_anchor=(0.05, 0.95), ncol=3, title='power function', shadow=True, fancybox=True)
plt.show()
下面是ncol=1:
2.添加标题title()
关键字参数主要集中在标题位置参数和标题文本格式参数: 标题位置参数值有"left"“center”和“right"。 标题文本格式参数主要是字体类别( family)字体大小( size)字体颜色( color)、字体风格(style)等,这些文本格式参数可以放在关键字参数fontdict 的字典中存储,也可以分别作为标题函数title(的关键字参数。
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-2, 2, 1000)
y = np.exp(x)
plt.plot(x, y, ls='-', lw=2)
plt.title('center demo')
plt.title('left demo', loc='left', fontdict={
'size': 'xx-large',
'color': 'r',
'family': 'Time New Roman'})
plt.title('right demo', loc='right', family='Comic Sans MS', size=20, style='oblique', color='c')
plt.show()
图里的left demo因为没找到这个字体所以默认的。
3.调节刻度范围xlim()和刻度标签xticks()
通过调用xlim()函数来改变x轴的刻度范围。 又通过函数xticks()来改变刻度标签。
import matplotlib.pyplot as plt
import numpy as np
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, -1*np.pi, -1*np.pi/2, 0, np.pi/2, np.pi, 3*np.pi/2, 2*np.pi],
[r"$-2\pi$", r"$-3\pi/2$", r"$-\pi$", r"$-2\pi/2$", r"$0$", r"$pi/2$", r"$\pi$", r"$3\pi/2$", r"$2\pi$"])
plt.plot(x, y)
plt.show()
4.逆序设置坐标轴标签xlim()
通过使用函数xlim()实现将“使用年限”的刻度标签值降序排列,其中的关键是将函数xlim(xmin,xmax)的参数xmin和xmax调换顺序,进而变成xlim(xmax,xmin)实现效果。
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
mpl.rcParams['font.sans-serif'] = ['FangSong']
mpl.rcParams['axes.unicode_minus'] = False
time = np.arange(1, 11, 0.5)
machinePower = np.power(time, 2)+0.7
plt.plot(time, machinePower, linestyle='-', linewidth='2', c='r')
plt.xlim(10, 1)
plt.xlabel('使用年限')
plt.ylabel('机器功率')
plt.title('机器损耗曲线')
plt.grid(ls=':', lw=1, c='gray', alpha=0.5)
可以直观清晰地反映出机器的性能随着使用年限的推移而产生的下降情况。(但是图像0为啥不是底边的线,我没懂,非常疑惑)
参考书目《Python数据可视化之matplotlib实践》
|