Matplotlib绘图(二)

目录

Matplotlib(二)

绘制一元二次方程的曲线y=x^2

绘制正弦曲线和余弦曲线

subplot函数

散点图

Matplotlib(二)

绘制一元二次方程的曲线y=x^2

Matplotlib有很多函数用于绘制各种曲线,其中plot函数用于曲线,需要将200个点的x坐标和y坐标分别以序列的形式传入plot函数,然后调用show函数显示绘制的图形:一元二次方程曲线

一元二次方程的曲线

# 导入matplotlib模块
import matplotlib.pyplot as plt
# 准备x y
x=range(-100,100)
y=[i**2 for i in x]
# 绘制一元二次方程曲线
plt.plot(x,y)
# 保存图片
plt.savefig("result.jpg")
plt.show()

图示:

 

绘制正弦曲线和余弦曲线

使用plt函数绘制任何曲线的第一步都是生成若干个坐标的(x,y),理论上坐标点是越多越好。本例取0-10之间100个等差数作为x的坐标,然后将这100个x坐标值一起传入Numpy的sin和cos函数,就会得到100个y坐标值,最后就可以使用plot函数绘制正弦函数和余弦函数。

正弦函数和余弦函数曲线

# 导入matplotlib和numpy模块
from matplotlib import pyplot as plt
import numpy as np
# 生成0-10之间 100个等差数
x=np.linspace(0,10,100)
sin_y=np.sin(x)
cos_y=np.cos(x)
# 进行绘制正弦曲线
plt.plot(x, sin_y)
# 进行绘制余弦曲线
plt.plot(x,cos_y)
plt.show()

图示:

 

subplot函数

上面的示例可以看到,调用两次plot函数,会将sin和cos函数曲线绘制到同一个二维坐标系中,如果想要绘制到两张画布上,可以调用subplot()函数将画布分区。

subplot(n,m,i)函数:将画布分成n行m列,将图形画到画布的i区域。

将画布分为区域,将图画到画布的指定区域

xlim、ylim函数:修改x,y轴的坐标。

# 导入模块
from matplotlib import pyplot as plt
import numpy as np
# 创建0-10中100个等差数
x=np.linspace(0,10,100)
sin_y=np.sin(x)
# 绘制正弦曲线
# 对画布进行分区,将画布分成2行2列 画到区1
plt.subplot(2,2,1)
# 修改x,y轴的坐标
plt.xlim(-5,20)
plt.ylim(-1,2)
plt.plot(x,sin_y)
# 对画布进行分区,将画布分成2行2列 画到区3
plt.subplot(2,2,3)
plt.plot(x,np.cos(x))
plt.show()

图示:

 

散点图

使用scatter函数可以绘制随机点,该函数需要接收x坐标和y坐标的序列。

sin函数的散点图

# 导入模块
from matplotlib import pyplot as plt
import numpy as np
# 生成0-10之间100个等差数
x=np.linspace(0,10,100)
sin_y=np.sin(x)
# 绘制正弦曲线散点图
#plt.scatter(x,sin_y)
plt.plot(x,sin_y,'o')   # 'o'表示点
plt.show()

图示:

 

从上面的示例可以看出,使用plot绘制和使用scatter绘制出来的图形是没有区别的, 但是使用plot绘制图形的速度优于scatter,所有如果画一堆点,而且点的形式没有差别, 那么我们使用plot,如果点的形式有差别(指点的大小和颜色不同)则必须使用scatter

绘制100种不同大小、颜色的散点图

# 导入模块
from matplotlib import pyplot as plt
import numpy as np
# 绘制100种大小 100种颜色的散点图
# 创建x
np.random.seed(0)   # 执行多次每次获取的随机数都是一样的
x=np.random.rand(100)
y=np.random.rand(100)
print(x)
print(y)
# 生成10种大小
size=np.random.rand(100)*1000
# 生成100种颜色
color=np.random.rand(100)
# 绘制散点图
plt.scatter(x,y,c=size,s=color) # s表示点的大小 c表示点的颜色
plt.show()

图示:

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

And ν

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

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

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

打赏作者

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

抵扣说明:

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

余额充值