matblotlib绘图笔记

目标:会使用matblotlib库绘制直方图、柱状图、散点图、气泡图、折线图、三维图等

一、子图

1.创建画布

# 1.导入库
from matplotlib import pyplot as plt
# 2.创建画布figure对象
plt.figure(figsize=(3, 2), facecolor="green")
# figsize 对象的宽和高(英寸)
# facecolor 背景颜色
# edgecolor 边框颜色
# 3.绘制
plt.plot()      # 绘制一个空白图形
# 4.显示图形
plt.show()

常用颜色:(也可使用颜色首字母)

颜色
blueblack
greenwhite
redyellow

2.划分子图

plt.subplot(行数, 列数, 子图序号)
# 比如:
plt.subplot(1,2,1)
# 也可以省略逗号
plt.subplot(121)

例子:

from matplotlib import pyplot as plt
plt.figure()
plt.subplot(1, 2, 1)
plt.subplot(1, 2, 2)
plt.show()

3.添加标题

# 设置子标题
plt.title('子标题')
# 设置全局标题
plt.suptitle('全局标题')

例子:

from matplotlib import pyplot as plt
plt.figure()
plt.subplot(1, 2, 1)
plt.title("figure1")
plt.subplot(1, 2, 2)
plt.title("figure2")
plt.suptitle("two figures")
plt.tight_layout()			# 自动调整子图,消除子图重叠
plt.show()

二、散点图

plt.scatter(x=横坐标, y=纵坐标, scale=数据点大小, 
			color=颜色, marker=数据点样式圆点等, label=图例文字)

例子:

from matplotlib import pyplot as plt            # 导入绘图库
import numpy as np                              # 导入numpy库

n = 1024
x1 = np.random.normal(0, 1, n)                   # 正态分布,生成数据x1坐标
y1 = np.random.normal(0, 1, n)                   # 正态分布,生成数据y1坐标
x2 = np.random.uniform(-4, 4, (1, n))            # 均匀分布,x2
y2 = np.random.uniform(-4, 4, (1, n))            # 均匀分布,x2

plt.scatter(x1, y1, color='blue', marker='*', label='Normal')     # 绘制散点
plt.scatter(x2, y2, color='red', marker='o', label='uniform')     # 绘制散点

plt.legend()                                    # 显示图例
plt.title("Normal", fontsize=20)                # 绘制标题
plt.text(2.5, 2.5, "u:0\na:1")                  # 添加文字

plt.xlim(-4, 4)                                 # x轴范围
plt.ylim(-4, 4)                                 # y轴范围

plt.xlabel('x', fontsize=14)                    # x轴文本
plt.ylabel('y', fontsize=14)                    # y轴文本

plt.show()                                      # 显示绘图

三、折线图

plt.plot(x, y, color, marker, label, linewidth)   	# x默认为0,1,2...

例子:

from matplotlib import pyplot as plt
import numpy as np

n = 24
y1 = np.random.randint(27, 37, n)
y2 = np.random.randint(40, 60, n)

plt.plot(y1, label='tem')
plt.plot(y2, label='water')

plt.xlim(0, 23)
plt.ylim(20, 70)
plt.xlabel('hour')
plt.ylabel('shuzhi')

plt.legend()
plt.show()

四、柱形图

plt.bar(left, height, width, label)		# x轴的位置序列, y轴的数值序列,柱子的宽度(0.8),图例文字

例子:

from matplotlib import pyplot as plt

y1 = [3, 4, 3, 6, 7, 8, 4]
y2 = [-3, -4, -3, -6, -7, -8, -4]

plt.bar(range(len(y1)), y1, label='y1')
plt.bar(range(len(y2)), y2, label='y2')

plt.legend()
plt.show()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值