Python绘图讲解

1.把握本质

对于大多数人来说,使用python绘图只是为了使自己的数据可视化而已,所以就没必要专门去学习每一个函数,只要掌握本质,用哪一个知识点的时候去对应查找即可,很多人包括我自己以前也是巴不得把所有的函数都掌握完。但是不得不承认,人的记忆在时间和容量上都是有限的,所以对于工具型的函数,用的时候查一下就可以了,就比如说我们用汽车代步,没必要去了解汽车到研究汽车的人那种程度吧,会开就行!

在讲解具体的画图之前,先要牢牢记住一个概念,python是面向对象的!很多人一上来就讲plot这些,虽然照着敲会画出来,但是不能让你把画图当作说话一样简单。只要是面向对象,我们就可以用生活中的例子来辅助我们学习知识。

2.明确figure、Axes、Axis

为了方便大家的理解,我以一个形象的例子来表达。先给你一个场景、你要欣赏一幅挂在墙上的画。figure就是墙、Axes就是画、Axis就是画的边框。你的画必须挂在墙上,你真正意义上的画是画在一张画纸上的,也就是Axies减去Axis的部分。所以我们绘图的步骤是、确定墙、画框、画纸、和画的内容。就那么简单!

3.代码

3.1导入必要的库以及防止乱码问题

# 1. 导入包这些必要的准备就是提供工具和材料
from matplotlib import pyplot as plt
import matplotlib as mpl
import numpy as np

# 防止乱码,当然你也可以从配置上设置,不过需要下载字体包,第二行是防止一些符号显示有问题
mpl.rcParams['font.family'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False

3.2准备数据

# 2. 准备数据
x = np.linspace(-3, 3, 50)
y1 = 2*x+1
y2 = x**2

 3.3确定figure并画图

# 3. 准备好墙,表明是第几面墙,并设置大小,除非你换墙,不然你以下的操作都在一面墙上
plt.figure(num=1, figsize=(8, 5)) 

# 4. 绘图  计算机绘图都是打点绘图,把点显示出来,并且设置线的颜色和宽度以及类型
# 调用我们导入库里面的函数,就是对象调用成员函数,值得注意的是l1后面有一个,为了后面图例给两条线先取名字
# 如果你不对画框那些进行操作的话,plot就是跟你准备好了的
l1, = plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--', label='line1')
l2, = plt.plot(x, y2, label='line1')     # 默认的线会是蓝色的宽度是1的实线

 3.4 图形美化

# 5. 细节处理(美化图片)

#5.1 图例
plt.legend()    # 这个也会有图列不过都是默认的一些值

# 这种个性化的图列,相当于先抓住那几条线,然后重新取名字,放在一个自己想要放的位置
# plt.legend(handles=[l1, l2], labels=['aaa', 'bbb'], loc='best')

#5.2 坐标轴限制
plt.xlim((-1, 2))
plt.ylim((-2, 3))   # 限定坐标轴范围

#5.3 设置横纵坐标和图的标题
plt.xlabel('x')
plt.ylabel('y')    # 设置坐标轴的名称
plt.title('the tow functions')  # 设置标题


#5.4 设置新的坐标轴和美化字体
new_ticks = np.linspace(-1, 2, 5)   # 设置新的ticks
plt.xticks(new_ticks)


# r表示的是一种正则表达形式,空格需要转义字符才能够读出来,不然会忽略掉空格,展现出的是数学形式的字体
plt.yticks([-2, -1.8, -1, 1.22, 3],
           [r'$really\ bad$', r'$bad\ \alpha$', r'$normal$', r'$good$', r'$really\ good$'])


#5.5 对画的边框重新设置
# 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')     # 确定轴的名字,如确定哪个是x轴
# 可以用数据定位绑定,以助于改变位置,也可以用axes百分比来确定位置
# 也就是将x、y轴随便平移有的喜欢十字型有的喜欢口字型,这就随便你
ax.spines['bottom'].set_position(('data', 2))  # 将x轴的位置绑定在y轴的2这个位置
ax.spines['left'].set_position(('data', 2))     # 将y轴的位置绑定在x轴的0这个位置



#6.  如果再想画一张Figure就换墙
plt.figure(num=2, figsize=(8, 9))
plt.plot(x, y1)


#7. 在脚本中只有使用这个语句,图才会显示出来
plt.show()                              

对于画一些简单的图,以上的代码完全够了,我想说的是,它的每一个部分都是分开的,你想怎么操作就怎么操作,只有你想不到,没有python做不到!效果图如下:

b0fa3d7464e543e29230448370cdf003.png

 

3.总结

你把在电脑上用python画图就想成是自己用手在画图,这样能够方便你有一个整体的把握,代码只是工具,最重的是你自己要知道怎么做,能够用专业的术语表达出你的想法,然后再网上查一下。

 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三昧书生731

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值