IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> pyplot设置坐标间距、图中每个点设置相应数值 -> 正文阅读

[游戏开发]pyplot设置坐标间距、图中每个点设置相应数值

一、画图常用的技巧

????本文主要对pyplot画图常用的技巧进行总结,主要包括设置横纵坐标范围设置横纵坐标间距,为图中点添加相应数值

??1.1 设置横纵坐标范围

????以2020年~2022年西华/西交/电科/川大复试线为例,

# 年份
YEARS = [2018, 2019, 2020, 2021, 2022]

# 西华复试线[2020-2022]
XiHua_z = [264, 263, 279]         # 专硕
XiHua_x = [264, 263, 273]         # 学硕
# 西交复试线[2020-2022]
XiJiao_z = [350, 360, 370]
XiJiao_x = [350, 320, 363]
# 电科复试线[2020-2022]
DianKe_z = [285, 300, 300]
DianKe_x = [340, 350, 340]
# 川大复试线[2020-2022]
ChuanDa_z = [340, 364, 350]
ChuanDa_x = [325, 348, 330]

# 绘制相关图形
plt.figure(figsize=(10, 5))             # 设置图片大小
plt.subplot(1, 2, 1)                    # 设置子图
plt.plot(YEARS[-3:], XiHua_z, marker='*', markersize=7, c='k', linewidth=1.5)
plt.plot(YEARS[-3:], XiJiao_z, marker='d', markersize=7, c='c', linewidth=1.5)
plt.plot(YEARS[-3:], DianKe_z, marker='.', markersize=7, c='b', linewidth=1.5)
plt.plot(YEARS[-3:], ChuanDa_z, marker='x', markersize=7, c='g', linewidth=1.5)
# plt.xlim([2020, 2022])                  # 手动设置横坐标范围
# plt.ylim([200, 500])                    # 手动设置纵坐标范围
plt.xlabel('年份', fontdict={'fontsize': 12})
plt.ylabel('分数', fontdict={'fontsize': 12})
plt.title('近3年西交/电科/川大专硕复试分数线', fontdict={'fontsize':12})
plt.legend(['西华-信息学院-电子信息(专硕)', '西交-信息学院-电子信息(专硕)', '电科-信通学院-电子信息(专硕)', '川大-电信学院-电子信息(专硕)'])
plt.subplot(1, 2, 2)
plt.plot(YEARS[-3:], XiHua_x, marker='*', markersize=7, c='k', linewidth=1.5)
plt.plot(YEARS[-3:], XiJiao_x, marker='d', markersize=7, c='c', linewidth=1.5)
plt.plot(YEARS[-3:], DianKe_x, marker='.', markersize=7, c='b', linewidth=1.5)
plt.plot(YEARS[-3:], ChuanDa_x, marker='*', markersize=7, c='g', linewidth=1.5)
# =================== 设置横纵坐标的范围 ======================== #
plt.xlim([2020, 2022])                  # 手动设置横坐标范围
plt.ylim([200, 500])                    # 手动设置纵坐标范围
# =================== 设置横纵坐标的范围 ======================== #
plt.xlabel('年份', fontdict={'fontsize': 12})
plt.ylabel('分数', fontdict={'fontsize': 12})
plt.title('近3年西交/电科/川大学硕复试分数线', fontdict={'fontsize':12})
plt.legend(['西华-信息学院-信通(学硕)', '西交-信息学院-信通(学硕)', '电科-信通学院-信通(学硕)', '川大-电信学院-信通(学硕)'])
plt.show()

???? 左边子图未设置横纵坐标范围,导致图例的位置出现在中部;右子图为设置横纵坐标范围后得到的结果。

???? 注意:上图横坐标年份出现小数点,不符合规范,可通过设置横纵坐标间距解决该问题。

??1.2 设置横纵坐标间距

# 年份
YEARS = [2018, 2019, 2020, 2021, 2022]
# 西华复试线[2020-2022]
XiHua_z = [264, 263, 279]         # 专硕
XiHua_x = [264, 263, 273]         # 学硕
# 西交复试线[2020-2022]
XiJiao_z = [350, 360, 370]
XiJiao_x = [350, 320, 363]
# 电科复试线[2020-2022]
DianKe_z = [285, 300, 300]
DianKe_x = [340, 350, 340]
# 川大复试线[2020-2022]
ChuanDa_z = [340, 364, 350]
ChuanDa_x = [325, 348, 330]

# 川大复试线[2020-2022]
ChuanDa_z = [340, 364, 350]
ChuanDa_x = [325, 348, 330]

# 绘制相关图形
plt.figure(figsize=(10, 5))             # 设置图片大小
plt.subplot(1, 2, 1)                    # 设置子图
plt.plot(YEARS[-3:], XiHua_z, marker='*', markersize=7, c='k', linewidth=1.5)
plt.plot(YEARS[-3:], XiJiao_z, marker='d', markersize=7, c='c', linewidth=1.5)
plt.plot(YEARS[-3:], DianKe_z, marker='.', markersize=7, c='b', linewidth=1.5)
plt.plot(YEARS[-3:], ChuanDa_z, marker='x', markersize=7, c='g', linewidth=1.5)
plt.xlim([2020, 2022])                  # 手动设置横坐标范围
plt.ylim([200, 500])                    # 手动设置纵坐标范围
plt.xlabel('年份', fontdict={'fontsize': 12})
plt.ylabel('分数', fontdict={'fontsize': 12})
plt.title('近3年西交/电科/川大专硕复试分数线', fontdict={'fontsize':12})
plt.legend(['西华-信息学院-电子信息(专硕)', '西交-信息学院-电子信息(专硕)', '电科-信通学院-电子信息(专硕)', '川大-电信学院-电子信息(专硕)'])
plt.subplot(1, 2, 2)
plt.plot(YEARS[-3:], XiHua_x, marker='*', markersize=7, c='k', linewidth=1.5)
plt.plot(YEARS[-3:], XiJiao_x, marker='d', markersize=7, c='c', linewidth=1.5)
plt.plot(YEARS[-3:], DianKe_x, marker='.', markersize=7, c='b', linewidth=1.5)
plt.plot(YEARS[-3:], ChuanDa_x, marker='*', markersize=7, c='g', linewidth=1.5)
# =================== 设置横纵坐标的间距 ======================== #
ax = plt.gca()
x_space = MultipleLocator(1)
ax.xaxis.set_major_locator(x_space)
ay = plt.gca()
y_space = MultipleLocator(25)
ay.yaxis.set_major_locator(y_space)
# =================== 设置横纵坐标的间距 ======================== #
plt.xlim([2020, 2022])                  # 手动设置横坐标范围
plt.ylim([200, 500])                    # 手动设置纵坐标范围
plt.xlabel('年份', fontdict={'fontsize': 12})
plt.ylabel('分数', fontdict={'fontsize': 12})
plt.title('近3年西交/电科/川大学硕复试分数线', fontdict={'fontsize':12})
plt.legend(['西华-信息学院-信通(学硕)', '西交-信息学院-信通(学硕)', '电科-信通学院-信通(学硕)', '川大-电信学院-信通(学硕)'])
plt.show()

???? 左边子图未设置横纵坐标间距,导致横坐标年份出现小数;右子图为设置横纵坐标间距后得到的结果。

???? 注意:上面所有示例均仅能得到各年份复试分数线的趋势,无法从图中准确获悉各年份具体的录取分数,可通过为图中点设置相应数值解决。

??1.3 为图中点设置相应数值

????以2018年~2022年全国考研报名/录取人数为例,

# 年份
YEARS = [2018, 2019, 2020, 2021, 2022]
# 18-22年报考人数
NUMS_B = [238, 290, 341, 377, 457]
# 18-21年录取人数
NUMS_L = [76.25, 81.13, 110.66, 117.7]

plt.figure(figsize=(5, 4))
plt.plot(YEARS, NUMS_B,  marker='.', markersize=7, c='b', linewidth=1.5)
plt.plot(YEARS[:4], NUMS_L, marker='d', markersize=7, c='r', linewidth=1.5)
ax = plt.gca()
x_space = MultipleLocator(1)
ax.xaxis.set_major_locator(x_space)

# =================== 相应点添加具体数值 ======================== #
# 为报名人数相应点添加具体数值
for x,y in zip(YEARS,NUMS_B):
    plt.text(x, y+7, '%.0f' % y, ha='center', va='bottom', fontdict={'fontsize': 12})
# 为录取人数相应点添加具体数值
for x, y in zip(YEARS[:4], NUMS_L):
    plt.text(x, y + 8, '%.0f' % y, ha='center', va='bottom', fontdict={'fontsize': 12})
# =================== 相应点添加具体数值 ======================== #

plt.xlabel('年份/年', fontdict={'fontsize': 12})
plt.ylabel('人数/万', fontdict={'fontsize': 12})
plt.ylim([0, 500])            # 手动设置横纵坐标范围
plt.title('近5年考研报名/录取人数', fontdict={'fontsize':12})
plt.legend(['报名人数', '录取人数'])
plt.show()
????备注,常用的marker: 'D', 'd', 'o', '.', '*', '^', 'v'; 常用的颜色:'c', 'r', 'g', 'k', 'b'

二、参考链接

???? 1、Matplotlib常见图形绘制
???? 2、订单可视化分析
???? 3、常用marker、线型和颜色

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-05-06 11:17:25  更:2022-05-06 11:18:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 11:33:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码