matplotlib一些完善图像的细节


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 right1
upper left2
lower left3
lower right4
center left6
center right7
lower center8
upper center9
center10

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实践》

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值