文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python matplotlib绘图详解

2024-04-02 19:55

关注

图标英文显示设置:

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

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()

总结

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯