【python matplotlib 绘图学习笔记①】 绘制简单折线图

首先我们引入一些要用到的包:

import matplotlib.pyplot as plt
import numpy as np

这里大部分展示或介绍用的是默认的参数或者主流,常用的参数,更加个性化的设置大家可以参考官方API文档


1.理解 fig 与 axes,画出白图

1.1

我们首先肯定想运行一个白图出来,也就是得运行出一个框框出来,也就是建立一个 fig,那么按照我的理解,首先我们就得建立一个画板,这个画板可以画任何我们想画的对象:

import matplotlib.pyplot as plt
'''
plt.figure:创建一个自定义的画板
figure参数说明:figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)
num:图像编号或名称,数字为编号 ,字符串为名称
figsize:指定figure的宽和高,单位为英寸;
dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80 1英寸等于2.5cm,A4纸是 21*30cm的纸张
facecolor:背景颜色
edgecolor:边框颜色
frameon:是否显示边框
'''
fig = plt.figure()
plt.show()

这样子,我们就可以得到一个白板儿了:
在这里插入图片描述

1.2

此时我们再来理解 axes,axes实际上就是建立了一个坐标域,按照我的理解,相当于买了张带坐标轴的画纸(或许大家上大物实验的时候用过),生成 axes 代码与效果如下:

import matplotlib.pyplot as plt
fig = plt.figure()
ax = plt.axes()
plt.show()

在这里插入图片描述
其实 axes 函数里面是有参数的,我们可以设置:

import matplotlib.pyplot as plt
'''
axes([left, bottom, width, height])
这四个参数其实这么想更好理解:P1 : (left, bottom), P2 : width, P3 : height
然后我们要把我们的 fig ,也就是我们的白板看成一个大小为 1 × 1 的矩形
于是P1即可理解为新的坐标矩形图纸在白板上的左下坐标点,P2,P3即为宽高
如果不设置这四个参数,会默认放满 fig
'''
fig = plt.figure() # 其实不加这个语句也会有同样的效果,其会自动创建一个默认 fig
ax = plt.axes([0.7, 0.7, 0.2, 0.2])
plt.show()

我们来看一看效果:
在这里插入图片描述

我们继续来玩儿这个东西:

import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = plt.axes([0.7, 0.7, 0.2, 0.2])
ax2 = plt.axes([0.1, 0.1, 0.3, 0.5])
plt.show()

效果如下:
在这里插入图片描述
看到这里是不是对 axes 的功能大致了解了呢?实际上,这样写我们只会在最近创建的白板创建 axes ,其实我们是可以在特定的白板上创建 axes !

import matplotlib.pyplot as plt
fig1 = plt.figure()
fig2 = plt.figure()
ax2 = fig1.add_axes([0.1, 0.1, 0.7, 0.7])
plt.show()

效果如下:
在这里插入图片描述
大家可以自己试一试,如果不用 fig1.add_axes,而直接 axes ,看看会发生什么效果。

注意:使用 add_axes的时候必须指定大小


2.画出折线图(函数图)

要像画出函数图像,那么我们肯定先建立好 fig (不建立其会自动创建一个),然后我们画好坐标,也就是加好一个 axes 。然后我们画的是简单的二维函数图像,所以肯定要设置好 x , y x,y x,y。代码如下:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 10000) # numpy生成等距 x
y = np.sin(x)
fig = plt.figure()
ax = plt.axes()
ax.plot(x, y)
plt.show()

效果如下:
在这里插入图片描述


3.让图变得更漂亮

让图变漂亮实际上也就是在函数里面加一些参数,下面我们来看看有哪些

3.1

首先,我们可以设置背景

import matplotlib.pyplot as plt
import numpy as np

a = plt.style.available
print(a)
plt.style.use('bmh')
x = np.linspace(-10, 10, 10000) # numpy生成等距 x
y = np.sin(x)
fig = plt.figure()
ax = plt.axes()
ax.plot(x, y)
plt.show()

效果:
在这里插入图片描述

不记得背景风格有啥咋办?我们直接:

import matplotlib.pyplot as plt
print(plt.style.available)

这样我们就可以看到所有可用的风格了

3.2

设置线属性

这个很好理解,我们之直接上代码:

plt.style.use('seaborn-whitegrid')
x = np.linspace(-10, 10, 10000) # numpy生成等距 x
fig = plt.figure()
ax = plt.axes()



'''
linestyle设置了线的类型
color设置了线的颜色
'''
ax.plot(x, x, linestyle='-', color = 'm')
ax.plot(x, x + 1, linestyle='--', color = 'r')
ax.plot(x, x + 2, linestyle='-.', color = 'y')
ax.plot(x, x + 3, linestyle=':', color = 'g')
plt.show()

效果:
在这里插入图片描述

更多的参数与颜色或线形选择大家可访问官方API文档查看

3.3

设置标签,限制一类
这个也超好理解,我们也直接上代码:

import matplotlib.pyplot as plt
import numpy as np

plt.style.use('seaborn-whitegrid')
x = np.linspace(-10, 10, 10000) # numpy生成等距 x
fig = plt.figure()
ax = plt.axes()


'''
xlim和ylim设置了坐标轴的限制
xlabel与ylabel设置了横纵坐标标签
title设置了这个axes的标题
'''
ax.set(xlim=(0, 10), ylim=(0, 10),
 xlabel='x', ylabel='y',
 title='My Colorful Plot')


ax.plot(x, x, linestyle='-', color = 'm')
ax.plot(x, x + 1, linestyle='--', color = 'r')
ax.plot(x, x + 2, linestyle='-.', color = 'y')
ax.plot(x, x + 3, linestyle=':', color = 'g')
plt.show()

效果:
在这里插入图片描述
最后,我们肯定希望再来点函数标签,表示什么颜色是什么线,所以我们可以用 lenged 函数实现,如下(倒数第二行):

import matplotlib.pyplot as plt
import numpy as np

plt.style.use('seaborn-whitegrid')
x = np.linspace(-10, 10, 10000) # numpy生成等距 x
fig = plt.figure()
ax = plt.axes()
ax.set(xlim=(0, 10), ylim=(0, 10),
 xlabel='x', ylabel='y',
 title='My Colorful Plot')
l1, = ax.plot(x, x, linestyle='-', color = 'm')
l2, = ax.plot(x, x + 1, linestyle='--', color = 'r')
l3, = ax.plot(x, x + 2, linestyle='-.', color = 'y')
l4, = ax.plot(x, x + 3, linestyle=':', color = 'g')


'''
handles里面装要标签的曲线
labels则是具体的标签名,要对应前面的直线
loc则是位置信息
'''
plt.legend(handles=[l1, l2, l3, l4], labels=['y=x', 'y=x+1', 'y=x+2', 'y=x+3'], loc='best')
plt.show()

注意保存直线那里一定要加逗号

或者大伙也可以改成这样:

import matplotlib.pyplot as plt
import numpy as np

plt.style.use('seaborn-whitegrid')
x = np.linspace(-10, 10, 10000) # numpy生成等距 x
fig = plt.figure()
ax = plt.axes()
ax.set(xlim=(0, 10), ylim=(0, 10),
 xlabel='x', ylabel='y',
 title='My Colorful Plot')
ax.plot(x, x, linestyle='-', color = 'm', label='y=x')
ax.plot(x, x + 1, linestyle='--', color = 'r', label='y=x+1')
ax.plot(x, x + 2, linestyle='-.', color = 'y', label='y=x+2')
ax.plot(x, x + 3, linestyle=':', color = 'g', label='y=x+3')


'''
loc则是位置信息
'''
plt.legend(loc='best')
plt.show()

最终效果:
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值