Matplotlib的基本用法

matplotlib的基本用法整理

  • matplotlib是一个python中数据可视化的强大的库,可以制作二维三维以及动态变化的图表

  • plt.show()每调动一次,就会清空之前做的一些设置,包括对坐标轴范围和刻度的设置,已经坐标轴标签的设置

画直线图

# 导入matplotlib
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,15,50)
y = 2*x
plt.plot(x,y)
plt.show()

显示效果如图

将多个函数画在同一个图上

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,15,50)  # x的范围是0到15,被分成了50份
y1 = x*x
y2 = x*x*x
y3 = 2+3*x
plt.plot(x,y1) # 添加第一个函数
plt.plot(x,y2) # 添加第二个函数
plt.plot(x,y3) # 添加第三个函数
plt.show()

在这里插入图片描述

设置线条的样式和颜色以及图片大小

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,15,50)
y = 2*x*x
# num = 2表示图片的编号是2
# figsize = (8,5)表示图片的长宽
# plt.figure()就是创建了一个图片对象
plt.figure(num = 2,figsize =(8.5) )
# color可修改颜色,linestyle可修改样式
plt.plot(x,y,color = 'red',linestyle = '--')
plt.show()

此处图片就是figure2了

设置坐标轴

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,15,50)
y = 2*x*x+7
# 设置x 和 y 轴在图片上的范围
plt.xlim(-3,6)
plt.ylim(7,20)
# 取消右边和上面的坐标轴
gca = 'get current axis'
ax = plt.gca() 
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')

# 设置坐标轴的标签
plt.xlabel('x')
plt.ylabel('y')


# 设置坐标原点
# 实现将(0,-1)设为坐标原点
# 设置y轴上-1为坐标原点的y点,把x轴放置再-1处
ax.spines['bottom'].set_position(('data',-1)) # 也可以是('axes',0.1)后面是百分比,相当于定位到10%处
# 设置x轴上0为坐标原点的x点,将y轴移置0处
ax.spines['left'].set_position(('data',0))


# 设置x轴的刻度
new_ticks = np.linspace(-3,6,20)
plt.xticks(new_ticks)
# 设置y轴的刻度
plt.yticks([7,10,15,17],['normal','great','brilliant','best'])

在这里插入图片描述

图与子图

  • 用subplot()方法
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,20,50)
#创建单个的子图
#plt.subplot(2, 2, 1)表示将一个图片划分为2*2的区域,ax1在四个区域中的第一个,以此类推
# 创建子图后,ax1就可以和之前单独的一个图片一样进行绘制
ax1 = plt.subplot(2, 2, 1)
ax2 = plt.subplot(2, 2, 2)
ax3 = plt.subplot(2, 2, 3)
ax1.plot(x,np.sin(x))
ax2.plot(x,np.sin(x),color = 'red')
ax3.plot(x,np.sin(x),color = 'orange')
plt.show()

在这里插入图片描述

  • 用subplots方法

subplots其实和subplot很像,只不过subplots是一次性创建很多个子图


plt.subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw)

部分参数介绍:
nrows : 行数,默认是1
ncols : 列数,默认是1
sharex与sharey : 是否共享x轴与y轴

x = np.linspace(0,20,50)

# 创建一个figure和一个子图(subplot)
fig,ax = plt.subplot()
ax.plot(x,np.sin(x))
plt.show()

# 创建两个子图
fig,(ax1,ax2) = plt.subplot(2,1,sharey = True)
ax1.plot(x,np.sin(x))
ax2.scatter(x,np.sin(x))
plt.show()  # 图二

# 创建四个子图
x = np.linspace(0,20,50)
y = np.sin(x)
fig,axes = plt.subplots(2,2,sharex = True,sharey = True)
axes[0,0].plot(x,y)
axes[0,1].scatter(x,y)
axes[1,0].bar(x,y)
plt.show()  # 图三

图二
在这里插入图片描述
图三

在这里插入图片描述

legend

我们可以为我们的线条添加标注

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0,20,50)
y = np.sin(x)

plt.plot(x,y,label = 'sinx',loc = 'best')
plt.legend()
plt.show()

在这里插入图片描述

之后有用到的再进行补充

这是另外一个老哥写的,整理的很有逻辑,也贴一下

Matplotlib入门详细教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值