Matplotlib绘图库讲解

(1)canvas(画板)位于最底层,导入matplotlib的时候就自动存在
(2)figure(画布)。建立在canvas之上,从这一层就可以开始设置其参数
(3)axes(子图)。将figure分成不同块,实现分面绘图

绘图之前,需要用到的第三方库numpy,matplotlib

折线图的绘制

import numpy as np
import matplotlib.pyplot as plt
x=np.arange(0,10)       #生成0,1,2,3,4,5,6,7,8,9
y=np.arange(0,10)
plt.plot(x,y)		
plt.show()

在这里插入图片描述
添加标题

import numpy as np
import matplotlib.pyplot as plt

pic = plt.figure(figsize=(6, 6), dpi=80)  # 设置2*1的画布,像素位80
plt.rcParams['font.sans-serif'] = ['SimHei']  # 显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 不加这两句下面的绘图二字显示不出来

plt.title('Matplotlib绘图')  # 添加标题       

x = np.arange(0, 10)  # 生成0,1,2,3,4,5,6,7,8,9
y = np.arange(0, 10)
plt.xlabel('x')  # 设置x轴的名称为"x"
plt.ylabel('y')
plt.xticks([0, 2, 4, 6, 8, 10])
plt.yticks([0, 2, 4, 6, 8, 10])
plt.plot(x, y, color='green')  # 设置颜色
plt.legend(['x=y'])  # 设置图例
plt.show()

在这里插入图片描述

折线

import matplotlib.pyplot as plt

pic = plt.figure(figsize=(6, 6), dpi=80)  # 设置2*1的画布,像素位80
plt.rcParams['font.sans-serif'] = ['SimHei']  # 显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 不加这两句下面的绘图二字显示不出来

plt.title('Matplotlib绘图')  # 添加标题

x = [0, 1, 2, 3, 4]
y = [0, 1, 3, 6, 10]
plt.plot(x, y)
plt.show()

在这里插入图片描述

绘制两条直线分别在两张图一个画板上

import numpy as np
import matplotlib.pyplot as plt

pic = plt.figure(figsize=(6, 6), dpi=80)  # 设置2*1的画布,像素位80

pic.add_subplot(2, 1, 1)  # 高为2:能容纳两张图的高,宽为1:能容纳一张图的宽
x = np.arange(0, 10)  # 生成0,1,2,3,4,5,6,7,8,9
y = np.arange(0, 10)
plt.xlabel('x')  # 设置x轴的名称为"x"
plt.ylabel('y')
plt.xticks([0,2,4,6,8,10])		#标记刻度
plt.yticks([0,2,4,6,8,10])
plt.plot(x, y, color='green')  # 设置颜色

pic.add_subplot(2, 1, 2)
x = np.arange(0, 10)
y = np.arange(0, 10)
plt.xticks([0,2,4,6,8,10])
plt.plot(x, y, color='blue')
plt.show()

在这里插入图片描述

绘制散点图

import numpy as np
import matplotlib.pyplot as plt

pic = plt.figure(figsize=(6, 6), dpi=80)  # 设置2*1的画布,像素位80

x = np.random.rand(100)  # 生成0~1随机数100个
y = np.random.rand(100)
plt.scatter(x,y)
plt.show()

在这里插入图片描述
绘制柱形图


import matplotlib.pyplot as plt

pic = plt.figure(figsize=(6, 6), dpi=80)  # 设置2*1的画布,像素位80

x = [0, 1, 2, 3, 4]
y = [0, 1, 3, 6, 10]
plt.bar(x, y)
plt.show()

在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt

pic = plt.figure(figsize=(6, 6), dpi=80)  # 设置2*1的画布,像素位80

x = np.random.normal(0, 1, 1000)  # 生成1000个服从正态分布数据
plt.hist(x, bins=20, density=True, rwidth=0.95)  # rwidth柱形的宽
plt.show()

在这里插入图片描述

饼图绘制

import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']  # 显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 不加这两句下面的绘图二字显示不出来

Genshin = np.random.randint(0, 10, 5)  # 随机在0~9生成5个数
labels = ['可莉', '甘雨', '七七', '钟离', '刻晴']

# 绘制饼图
plt.pie(x=Genshin,  # 绘图数据
        labels=labels,  # 添加角色标签
        autopct='%.1f%%')  # 设置百分比的格式,这里保留一位小数,小数点前面的数字对产生的结果没有任何影响,小数点后面的数字表示保留小数点几位。
plt.title("原神角色持有占比")
plt.show()  # 显示图形

在这里插入图片描述

Axes3D绘图

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = Axes3D(fig)
x = np.arange(0, 10)  # 生成0,1,2,3,4,5,6,7,8,9
y = np.arange(0, 10)
z = np.arange(0, 10)
plt.xlabel('x')  # 设置x轴的名称为"x"
plt.ylabel('y')
plt.xticks([0, 2, 4, 6, 8, 10])
plt.yticks([0, 2, 4, 6, 8, 10])
ax.plot(x, y, z, color='green')  # 设置颜色
plt.show()

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值