matplotlib简单使用汇总

参考链接:https://www.jianshu.com/p/da385a35f68d

画点图、线图

在这里插入图片描述

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator

# 使用numpy产生函数数据
x = np.arange(6, 100, 0.5)
y = x * 2

x2 = np.arange(0, 10, 0.1)
y2 = np.sin(x2)

# 加入这句话为了能在图中写中文
plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

# 创建窗口和子图。在绘图结构中,figure创建窗口,subplot创建子图。所有的绘画只能在子图上进行。plt表示当前子图。
# 方法1:先创建窗口,再创建子图
fig = plt.figure(num=1, figsize=(15, 10), dpi=100, facecolor="#BBFFFF", edgecolor='#0000CD')  # 开启一个窗口,同时设置大小,分辨率,背景颜色
ax1 = fig.add_subplot(2, 1, 1)  # 通过fig添加子图。参数:行数,列数,索引。
ax2 = fig.add_subplot(2, 1, 2)  # 行数和列数一致,索引代表放置的位置,从左上角开始数
# 方法2:一次性创建窗口和多个子图。(空白不绘制)
# fig, axarr = plt.subplots(4, 1)  # 开一个新窗口,并添加4个子图,返回子图数组
# ax1 = axarr[0]  # 通过子图数组获取一个子图
# print(fig, ax1)

ax1.set_title("mingyu")  # 设置图的标题
ax1.set_xlabel("age", fontdict={'color': 'r', 'fontsize': '30'})  # 设置图的x轴的名称
ax1.set_ylabel("money(万元)", fontdict={'color': 'r', 'fontsize': '30'})  # 设置y轴的名称
ax1.set_xlim(0, 100)  # 设置x轴的范围
ax1.set_ylim(0, 250)  # 设置y轴的范围
ax1.xaxis.set_major_locator(MultipleLocator(5))  # 定义x向主刻度标签的刻度差为2的倍数。就是隔几个刻度才显示一个标签文本
ax1.yaxis.set_major_locator(MultipleLocator(15))  # 定义y向主刻度标签的刻度差为3的倍数。就是隔几个刻度才显示一个标签文本
ax1.set_facecolor('#FFEC8B')  # 设置子图的背景颜色
ax1.text(80, 200, r'y=x*2', fontdict={'color': '#CD5C5C', 'fontsize': '20'})  # 指定位置显示文字
# 画箭头,从文字的位置开始,指向目的点
ax1.annotate('这里是甲子', xy=(60, 120), xytext=(63, 90),  # 添加标注,参数:注释文本、指向点、文字位置、箭头属性
             arrowprops=dict(facecolor='black', shrink=0.02),
             )
# 显示网格。which参数的值为major(只绘制大刻度)、minor(只绘制小刻度)、both,默认值为major。axis为'x','y','both'。alpha透明度。linewidth线宽
ax1.grid(b=True, which='major', axis='both', alpha=0.7, color='#FF6A6A', linestyle='-', linewidth=0.5)

ax1.plot(x, y, marker='.', color='#6E8B3D', label='第一个子图的操作')  # 画点图


ax2.set_xlim(0, 10)  # 设置x轴的范围
ax2.set_ylim(-1.1, 1.1)  # 设置y轴的范围
ax2.text(0, 0.00, '_' * 92, fontdict={'color': '#000000', 'fontsize': '20'})  # 指定位置显示文字
ax2.plot(x2, y2, linestyle='--', color='#FFD39B', label='第二个子图的操作')  # 画线图

# plt.savefig('C:/Users/gzsqy/Desktop/aa.jpg', dpi=400, bbox_inches='tight')  # 在show函数之前保存。savefig保存图片,dpi分辨率,bbox_inches子图周边白色空间的大小
plt.show()

标记maker | 描述

‘o’ | 圆圈
‘.’ | 点
‘D’ | 菱形
‘s’ | 正方形
‘h’ | 六边形1
‘*’ | 星号
‘H’ | 六边形2
‘d’ | 小菱形
‘_’ | 水平线
‘v’ | 一角朝下的三角形
‘8’ | 八边形
‘<’ | 一角朝左的三角形
‘p’ | 五边形
‘>’ | 一角朝右的三角形
‘,’ | 像素
‘^’ | 一角朝上的三角形
‘+’ | 加号
‘\ ‘ | 竖线
‘x’ | X


画条形图、散点图、三维图

import numpy as np
import matplotlib.pyplot as plt

# 加入这句话为了能在图中写中文
plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

# 画条形图
# plt.figure(3)
# x_index = np.arange(5)  # 柱的索引
# x_data = ('A', 'B', 'C', 'D', 'E')
# y1_data = (20, 35, 30, 35, 27)
# y2_data = (25, 32, 34, 20, 25)
# bar_width = 0.35  # 定义一个数字代表每个独立柱的宽度
# rects1 = plt.bar(x_index, y1_data, width=bar_width, alpha=0.4, color='b', label='男')  # 参数:左偏移、高度、柱宽、透明度、颜色、图例
# rects2 = plt.bar(x_index + bar_width, y2_data, width=bar_width, alpha=0.5, color='r', label='女')  # 参数:左偏移、高度、柱宽、透明度、颜色、图例
# # 关于左偏移,不用关心每根柱的中心不中心,因为只要把刻度线设置在柱的中间就可以了
# plt.xticks(x_index + bar_width / 2, x_data)  # x轴刻度线
# plt.legend()  # 显示图例
# plt.show()

# 画散点图
# fig = plt.figure(4)  # 添加一个窗口
# ax = fig.add_subplot(1, 1, 1)  # 在窗口上添加一个子图
# ax.grid(b=True, which='major', axis='both', alpha=0.7, color='#FF6A6A', linestyle='-', linewidth=0.5)
# x = np.random.random(100)  # 产生随机数组
# y = np.random.random(100)  # 产生随机数组
# x1 = (0.1, 0.5, 0.2, 0.6, 0.8, 0.3, 0.4, 0.1, 0.8)
# y1 = (0.8, 0.1, 0.5, 0.2, 0.6, 0.8, 0.3, 0.4, 0.1)
# ax.scatter(x1, y1, s=50, c='#FF6A6A', marker=".", alpha=0.5, lw=1, facecolors='none')  # x横坐标,y纵坐标,s图像大小,c颜色,marker图片,lw图像边框宽度
# plt.show()  # 所有窗口运行

# 画三维图
fig = plt.figure(5)
ax = fig.add_subplot(1, 1, 1, projection='3d')  # 绘制三维图
x, y = np.mgrid[-2:2:20j, -2:2:20j]  # 获取x轴数据,y轴数据
z = x * np.exp(-x ** 2 - y ** 2)  # 获取z轴数据
ax.plot_surface(x, y, z, rstride=2, cstride=1, cmap=plt.cm.coolwarm, alpha=0.8)  # 绘制三维图表面
ax.set_xlabel('x 轴')  # x轴名称
ax.set_ylabel('y 轴')  # y轴名称
ax.set_zlabel('z 轴')  # z轴名称
plt.show()

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值