亲宝软件园·资讯

展开

Python matplotlib绘图 Python matplotlib绘图详解

Star星屹程序设计 人气:0
想了解Python matplotlib绘图详解的相关内容吗,Star星屹程序设计在本文为您仔细讲解Python matplotlib绘图的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Python,matplotlib,matplotlib绘图,下面大家一起来学习吧。

图标英文显示设置:

正常以字符串形式传进去字串,英文显示格式不是很美观,为了让文字更美观点,在书写时以这种格式写:

r'$string$'

在这里,如果需要特殊数学字符使用 \ 转义,空格也需要转义

比如:r'$This\ is\ the\ some\ text.\ \mu\ \sigma_i\ \alpha_t$'

一、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 np
from matplotlib import pyplot as plt
 
x = np.linspace(-3, 3, 50)
y1 = x*2+1
y2 = 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轴的0
ax.spines['bottom'].set_position(('data', 0)) #outward, axes
ax.spines['left'].set_position(('data', 0))
plt.show()

 二、为特殊点加注解(Annotation)

使用text()会将文本放置在轴域的任意位置。 文本的一个常见用例是标注绘图的某些特征,而annotate()方法提供辅助函数,使标注变得容易。 annotate用于在图形上给数据添加文本注解,而且支持带箭头的划线工具,方便我们在合适的位置添加描述信息。在标注中,有两个要考虑的点:由参数xy表示的标注位置和xytext的文本位置。 这两个参数都是(x, y)元组。

参数说明:

Axes.annotate(s, xy, *args, **kwargs)

属性值 含义
'figure points' 以绘图区左下角为参考,单位是点数
'figure pixels' 以绘图区左下角为参考,单位是像素数
'figure fraction' 以绘图区左下角为参考,单位是百分比
'axes points' 以子绘图区左下角为参考,单位是点数(一个figure可以有多个axex,默认为1个)
'axes pixels' 以子绘图区左下角为参考,单位是像素数
'axes fraction' 以子绘图区左下角为参考,单位是百分比
'data' 以被注释的坐标点xy为参考 (默认值)
'polar' 不使用本地数据坐标系,使用极坐标系
属性值 含义
'offset points' 相对于被注释点xy的偏移量(单位是点)
'offset pixels' 相对于被注释点xy的偏移量(单位是像素)
关键字 说明
width 箭头的宽度(单位是点)
headwidth 箭头头部的宽度(点)
headlength 箭头头部的长度(点)
shrink 箭头两端收缩的百分比(占总长)
? 任何 matplotlib.patches.FancyArrowPatch中的关键字
import numpy as np
from matplotlib import pyplot as plt
 
x = np.linspace(-3, 3, 50)
y1 = x*2+1
plt.figure()
plt.plot(x, y1, label='up')
 
#添加注释
x0 = 1
y0 = 2*x0 + 1
#使用散点方式,只显示一个点, blue
plt.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 1
plt.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()

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注的更多内容!

加载全部内容

相关教程
猜你喜欢
用户评论