当前位置: 首页 > news >正文

python使用matplotlib画图

【README】

plot画图有两种方法:包括 plt.plot(), ax.plot()-画多个子图 ,其中ax表示某个坐标轴;


【1】画单个图

import matplotlib
# 避免兼容性问题:明确指定 matplotlib 使用兼容的后端,TkAgg 或 Agg
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
import numpy as np# 设置画布大小(宽=8个单位,高=4个单位)
figure01 = plt.figure(figsize=(8, 4))# plot画图有两种方法:包括 plt.plot(), ax.plot()-画多个子图 ,其中ax表示某个坐标轴X = np.arange(0, 12.1, 0.1)
Y = np.sin(X)
# 画线
# marker 画点
# linestyle 设置为空串,plt.plot()画出来的是散点图
# zorder 设置图像上下层(数值越大,在上层)
plt.plot(X, Y, color='lime', linestyle='-.', linewidth=2,marker='^', markerfacecolor='black', markeredgecolor='red', markersize=3, markeredgewidth=1, label='Normal',  zorder=2)# 获取坐标轴
ax1 = plt.gca()
ax1.set_title('Git Title', fontname='Times New Roman', fontsize='20', weight='bold', style='italic')
ax1.set_xlabel('X Label-time(UTC)')
ax1.set_ylabel('T($^o$C)')# 设置刻度
ax1.set_xticks(np.arange(0, 12, 1.5))
# 设置刻度属性,如方向,颜色
ax1.tick_params(axis='both', direction='in', colors='blue', length=10, width=1)# 画多个图
plt.plot(X+2, Y, label='Strange', zorder=1)# plt.plot() 设置多个图的label标签,然后调用plt.legend()显式图例标签
plt.legend()# 画图紧致布局
plt.tight_layout()
# 保存
plt.savefig('./matplotlib_exercise01.png', dpi=400)plt.show()# 画散点图
# plt.scatter(X, Y)
# # plt.show()

结果:


【2】一个面板画多个图

import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
import numpy as np# plot画子图
X = np.arange(0, 12.1, 0.1)
Y = np.sin(X)# 获取多个子图的图像与坐标轴
# figure表示画布, ax_array表示坐标轴数组
figure, ax_array = plt.subplots(nrows=2, ncols=2)
print("type(figure) = ", type(figure))
print("type(ax_array) = ", type(ax_array))
# type(figure) =  <class 'matplotlib.figure.Figure'>
# type(ax_array) =  <class 'numpy.ndarray'>ax_array[0, 0].plot(X, Y)
ax_array[0, 1].plot(X, Y + 1)
ax_array[1, 0].plot(X + 1, Y)
ax_array[1, 1].plot(X, Y + 1)# 设置x轴的取值范围相同,以便比较
ax_array[0, 0].set_xlim([0, 10])
ax_array[1, 0].set_xlim([0, 10])
ax_array[0, 1].set_xlim([0, 5])
ax_array[1, 1].set_xlim([0, 5])# 设置y轴为指数坐标轴
ax_array[0, 0].set_yscale('log')# 设置双坐标轴(在ax4坐标轴基础上画第2个坐标轴 ax4_twinx)
# ax00 与 ax00_twinx 共用同一个x轴
ax4 = ax_array[1, 1]
ax4_twinx = ax4.twinx()
X4 = np.arange(0, 12.1, 0.1)
Y4 = X + 1
ax4_twinx.plot(X4, Y4, 'r')# 自动调整布局,并设置间距
figure.tight_layout(pad=3.0,      # 画布边缘间距w_pad=2.0,    # 水平间距h_pad=2.0     # 垂直间距
)
plt.show()

【结果】

相关文章:

  • 交易所功能设计的核心架构与创新实践
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(21):复习
  • 一般枚举题目合集
  • 【HALCON】 HALCON 教程:正确使用 `get_dict_tuple` 获取字典内容
  • gd32e230c8t6 keil6工程模板
  • loss = -F.log_softmax(logits[:, -1, :], dim=1)[0, irrational_id]
  • 快消零售AI转型:R²AIN SUITE如何破解效率困局
  • CK-S654-PA60一拖四分体式半导体电子货架专用RFID读写器|读码器接线使用说明
  • java day 11
  • acwing 1488. 最短距离 超级源点 最短路 堆优化Dijkstra
  • 03_朴素贝叶斯分类
  • The 2022 ICPC Asia Xian Regional Contest(E,L)题解
  • 鸿蒙:DevEco Studio配置ohpm时,cmd正常,在终端出现‘ohpm‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
  • PHP 编程:现代 Web 开发的基石与演进
  • Vue.js 组件开发指南
  • vim启动的时候,执行gg
  • (3)python开发经验
  • c#中equal方法与gethashcode方法之间有何关联?
  • Linux514 rsync 解决方案环境配置
  • MySQL之基础事务
  • 中国结算澄清“严查场外配资”传闻:账户核查为多年惯例,无特殊安排
  • 七旬男子驾“老头乐”酒驾被查,曾有两次酒驾两次肇事记录
  • “无锡景・江南韵”:中国评弹艺术在尼日利亚收获众多粉丝
  • 从采购到销售!市场监管总局指导行业协会防控肉品风险
  • 中美经贸中方牵头人、国务院副总理何立峰出席新闻发布会表示:中美达成重要共识,会谈取得实质性进展
  • 深入贯彻中央八项规定精神学习教育中央指导组完成进驻