Python|Python matplotlib绘图详解
目录
- 图标英文显示设置:
- 一、figure窗口及坐标轴设置
- 二、为特殊点加注解(Annotation)
- 总结
图标英文显示设置:
正常以字符串形式传进去字串,英文显示格式不是很美观,为了让文字更美观点,在书写时以这种格式写:
r'$string$'
在这里,如果需要特殊数学字符使用 \ 转义,空格也需要转义
比如:r'$This\ is\ the\ some\ text.\ \mu\ \sigma_i\ \alpha_t$'
![Python|Python matplotlib绘图详解](https://img.it610.com/image/info11/c375ef3354ae4fb794b38864ee6c7718.jpg)
文章图片
一、figure窗口及坐标轴设置
plt.figure(figsize = (20, 8), dpi = 80) | 窗口,用于展示图片 | 1、figure图形的意思,这里指我们画的图, 2、通过实例化一个figure并且传递参数,能够在后台自动使用该figure实例; 3、在图像模糊的时候可以传入dpi参数,让图片更加清晰 4、figsize:指定图片的大小 5、linewidth:指定显示的线的宽度 6、linestyle:指定线条显示的风格,如:虚线 linestyle="--" |
ax = plt.gca() | 获取当前图形的坐标轴 | gca == "get current axis" 获取坐标轴 |
ax.spines['right'].set_color('none') | 图形的边框 | spines通过在[]设置left\right\bottom\top来对4个边框进行格式设置 set_color是设置颜色 |
ax.xaxis.set_ticks_position('bottom') | 设置用哪个刻度做轴 | 使用bottom当作x轴 |
ax.spines['bottom'].set_position(('data', 0)) | 设置坐标轴的位置 | 设置x轴的位置是放在y轴的0刻度处 |
import numpy as npfrom matplotlib import pyplot as plt x = np.linspace(-3, 3, 50)y1 = x*2+1y2 = x**2 #创建一个窗口plt.figure()#同一窗口放置多张图片l1, = plt.plot(x, y1, label='up')l2, = plt.plot(x, y2, color="red", linewidth=2.0, linestyle="--", label='down')#设置显示图例plt.legend(handles=[l1, l2], labels=['aaa', 'bbb'], loc='best') #设置坐标轴的取值范围plt.xlim((-1,2))plt.ylim((-2,3)) #设置坐标轴的提示信息plt.xlabel("I am x")plt.ylabel("I am y") #生成新的坐标点new_ticks = np.linspace(-1, 2, 5) #将-1~2分为5份#设置显示出来的坐标单位plt.xticks(new_ticks)#人为指定坐标轴显示的内容#设置刻度上显示的内容,但需要人为指定对应顺序plt.yticks([-2, -1.8, -1, 1.22, 3,], [r'$really\ bad$', r'$bad$', r'$normal$',r'$good$', r'$really\ good$']) # gca == "get current axis" 获取坐标轴ax = plt.gca()#图形的边框ax.spines['right'].set_color('none')ax.spines['top'].set_color('none') #改变坐标轴的位置#设置用哪个刻度做轴ax.xaxis.set_ticks_position('bottom')ax.yaxis.set_ticks_position('left')#横坐标设置为y轴的0ax.spines['bottom'].set_position(('data', 0)) #outward, axesax.spines['left'].set_position(('data', 0))plt.show()
![Python|Python matplotlib绘图详解](https://img.it610.com/image/info11/64bdbb5f75e34fe29c852c32ee609698.jpg)
文章图片
二、为特殊点加注解(Annotation)
使用text()会将文本放置在轴域的任意位置。 文本的一个常见用例是标注绘图的某些特征,而annotate()方法提供辅助函数,使标注变得容易。 annotate用于在图形上给数据添加文本注解,而且支持带箭头的划线工具,方便我们在合适的位置添加描述信息。在标注中,有两个要考虑的点:由参数xy表示的标注位置和xytext的文本位置。 这两个参数都是(x, y)元组。参数说明:
Axes.annotate(s, xy, *args, **kwargs)
- s:注释文本的内容
- xy:被注释的坐标点,二维元组形如(x,y)
- xytext:注释文本的坐标点,也是二维元组,默认与xy相同
- xycoords:被注释点的坐标系属性,允许输入的值如下
属性值 | 含义 |
---|---|
'figure points' | 以绘图区左下角为参考,单位是点数 |
'figure pixels' | 以绘图区左下角为参考,单位是像素数 |
'figure fraction' | 以绘图区左下角为参考,单位是百分比 |
'axes points' | 以子绘图区左下角为参考,单位是点数(一个figure可以有多个axex,默认为1个) |
'axes pixels' | 以子绘图区左下角为参考,单位是像素数 |
'axes fraction' | 以子绘图区左下角为参考,单位是百分比 |
'data' | 以被注释的坐标点xy为参考 (默认值) |
'polar' | 不使用本地数据坐标系,使用极坐标系 |
- textcoords :注释文本的坐标系属性,默认与xycoords属性值相同,也可设为不同的值。除了允许输入xycoords的属性值,还允许输入以下两种:
属性值 | 含义 |
---|---|
'offset points' | 相对于被注释点xy的偏移量(单位是点) |
'offset pixels' | 相对于被注释点xy的偏移量(单位是像素) |
- arrowprops:箭头的样式,dict(字典)型数据,如果该属性非空,则会在注释文本和被注释点之间画一个箭头。如果不设置'arrowstyle' 关键字,则允许包含以下关键字:
关键字 | 说明 |
---|---|
width | 箭头的宽度(单位是点) |
headwidth | 箭头头部的宽度(点) |
headlength | 箭头头部的长度(点) |
shrink | 箭头两端收缩的百分比(占总长) |
? | 任何 matplotlib.patches.FancyArrowPatch中的关键字 |
import numpy as npfrom matplotlib import pyplot as plt x = np.linspace(-3, 3, 50)y1 = x*2+1plt.figure()plt.plot(x, y1, label='up') #添加注释x0 = 1y0 = 2*x0 + 1#使用散点方式,只显示一个点, blueplt.scatter(x0, y0, s=50, color='b')#k--表示 black的 --plt.plot([x0, x0], [0, y0], 'k--', lw=2.5) ax = plt.gca()ax.spines['top'].set_color('none')ax.spines['right'].set_color('none')ax.xaxis.set_ticks_position('bottom')ax.yaxis.set_ticks_position('left')ax.spines['bottom'].set_position(('data', 0))ax.spines['left'].set_position(('data', 0)) #设置标注#method 1plt.annotate(r'$2x+1=%s$' % str(y0), xy=(x0, y0),xycoords='data', xytext=(+30, -30), textcoords='offset points',fontsize=16, arrowprops=dict(arrowstyle='->', connectionstyle='arc3, rad=.2'))plt.text(-3.7, 3, r'$This\ is\ the\ some\ text.\ \mu\ \sigma_i\ \alpha_t$',fontdict={'size':16, 'color': 'r'}) plt.show()
![Python|Python matplotlib绘图详解](https://img.it610.com/image/info11/aba60a82554f443284489a687e04114a.jpg)
文章图片
总结 【Python|Python matplotlib绘图详解】本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!
推荐阅读
- python学习之|python学习之 实现QQ自动发送消息
- 逻辑回归的理解与python示例
- python自定义封装带颜色的logging模块
- 【Leetcode/Python】001-Two|【Leetcode/Python】001-Two Sum
- Python基础|Python基础 - 练习1
- Python爬虫|Python爬虫 --- 1.4 正则表达式(re库)
- Python(pathlib模块)
- python青少年编程比赛_第十一届蓝桥杯大赛青少年创意编程组比赛细则
- Python数据分析(一)(Matplotlib使用)
- Python|Python 9.20