系列文章目录

可视化是科学数据的呈现比较理想的一种方式,怎样画一张自己想要的图片很重要。


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 系列文章目录
  • 前言
  • 一、单张折线图
    • 主要功能:
    • 大小、背景色、网格、图例、坐标、标题、中文字、标题、增加横竖线、保存图片
  • 二、组合图
    • 主要功能:
    • 多图组合,多坐标轴,局部放大
    • 偶数张图
    • 奇数数张图
  • 三、多坐标轴
  • 四、局部放大

前言

Python 中 matplotlib提供了一种绘图方式,本文主要介绍基于Matplotlib绘制单图和画组合图的实例,便于大家快速使用,达到自己想要绘图的目的。要想真正用好,还是需要细致的查看接口参数,学习各种丰富的参数配置。


import matplotlib.pyplot as pltx = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]y_a = [1.1, 2.1, 2.8, 3.5, 5.4, 6.1, 7, 7.5, 9, 10]  # 原始数据
y_a_fit = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]  # 拟合数据
y_b = [0.99, 0.96, 0.91, 0.84, 0.75, 0.64, 0.51, 0.36, 0.19, 0.1]  # 第二组数据

一、单张折线图

主要功能:

大小、背景色、网格、图例、坐标、标题、中文字、标题、增加横竖线、保存图片

import matplotlib.pyplot as plt
from matplotlib import font_manager  # 导入字体管理模块x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y_a = [1.1, 2.1, 2.8, 3.5, 5.4, 6.1, 7, 7.5, 9, 10]  # 原始数据
y_a_error = [0.1, 0.11, 0.13, 0.2, 0.15, 0.22, 0.3, 0.23, 0.32, 0.38]
y_a_fit = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]  # 拟合数据
y_b = [0.99, 0.96, 0.91, 0.84, 0.75, 0.64, 0.51, 0.36, 0.19, 0.1]  # 第二组数据# 图片大小为10*8,每英寸100个像素点
plt.figure(figsize=(10, 8), dpi=100)  # 设置图片大小,一般默认不设置
plt.rcParams['axes.facecolor'] = 'y' # 设置背景色
plt.grid(True)  # 绘制网格plt.title('标题', fontsize=15, fontproperties='FangSong') # 解决中文标注字体,否则显示失败
plt.plot(x, y_a, color='r', marker='o', linestyle='', label='y_a')
# plt.errorbar(x,y_a,fmt="bo:", yerr=y_a_error,xerr=0.1,ecolor='r',capsize=5)  #误差棒
plt.plot(x, y_a_fit, label='y_a_fit', linestyle='dashed', alpha=0.5)  # 虚线连接plt.ylim(ymin=0, ymax=12)  # 设置X取值范围
plt.xlim(xmin=0, xmax=11)  # 设置X取值范围
# 等价于plt.plt.axis([0, 11, 0, 12]) x,y一起设计plt.xlabel('x坐标', fontsize=14, fontproperties='FangSong')
plt.ylabel('y坐标', fontsize=14, fontproperties='FangSong')
plt.axvline(x=7, color='#d46061', linewidth=1) # 增加横线
plt.axhline(y=6, color='#d46061', linewidth=1)
# 注释标注特殊点
# xy:箭头所在位置,xytext:文本所在位置,
# arrowprops 在xy和xytext之间绘制箭头, shrink表示注释点与注释文本之间的距离
plt.annotate('注释', xy=(2, 2), xytext=(2, 5),arrowprops=dict(facecolor='c', shrink=0.1),fontproperties='FangSong')plt.legend()  # 显示图例等信息
plt.savefig("fig_1.png") # 放在show前面
plt.show()

二、组合图

主要功能:

多图组合,多坐标轴,局部放大

偶数张图

fg = plt.figure()
sub1 = plt.subplot(321, facecolor='r')  # 3行2列第一个位置
sub1.plot(x, y_a, color='g', marker='o', linestyle='', label='y_a')
plt.subplot(322, facecolor='g')
plt.subplot(323, facecolor='b')
sub4 = plt.subplot(324, facecolor='c')
sub4.errorbar(x,y_a,fmt="bo:", yerr=y_a_error,xerr=0.1,ecolor='r',capsize=5)
sub4.set_xlabel('x坐标', fontsize=14, fontproperties='FangSong')
#误差棒
plt.subplot(325, facecolor='y')
plt.subplot(326, facecolor='k')
# plt.legend()
plt.show()

奇数数张图

fg = plt.figure()
sub1 = plt.subplot(211, facecolor='r')  # 2行2列第一个位置
sub1.plot(x, y_a, color='g', marker='o', linestyle='', label='y_a')
plt.subplot(223, facecolor='g')
sub3 = plt.subplot(224, facecolor='b')
sub3.errorbar(x,y_a,fmt="bo:", yerr=y_a_error,xerr=0.1,ecolor='r',capsize=5)
sub3.set_xlabel('x坐标', fontsize=14, fontproperties='FangSong')
#误差棒
# plt.legend()
plt.show()fg = plt.figure()
sub1 = plt.subplot(221, facecolor='r')  # 2行2列第一个位置
sub1.plot(x, y_a, color='g', marker='o', linestyle='', label='y_a')
plt.subplot(222, facecolor='g')
sub3 = plt.subplot(212, facecolor='b')
sub3.errorbar(x,y_a,fmt="bo:", yerr=y_a_error,xerr=0.1,ecolor='r',capsize=5)
sub3.set_xlabel('x坐标', fontsize=14, fontproperties='FangSong')
#误差棒
# plt.legend()
plt.show()fg = plt.figure()
sub1 = plt.subplot(121, facecolor='r')  # 2行2列第一个位置
sub1.plot(x, y_a, color='g', marker='o', linestyle='', label='y_a')
plt.subplot(222, facecolor='g')
sub3 = plt.subplot(224, facecolor='b')
sub3.errorbar(x,y_a,fmt="bo:", yerr=y_a_error,xerr=0.1,ecolor='r',capsize=5)
sub3.set_xlabel('x坐标', fontsize=14, fontproperties='FangSong')
#误差棒
# plt.legend()
plt.show()fg = plt.figure()
sub1 = plt.subplot(122, facecolor='r')  # 2行2列第一个位置
sub1.plot(x, y_a, color='g', marker='o', linestyle='', label='y_a')
plt.subplot(221, facecolor='g')
sub3 = plt.subplot(223, facecolor='b')
sub3.errorbar(x,y_a,fmt="bo:", yerr=y_a_error,xerr=0.1,ecolor='r',capsize=5)
sub3.set_xlabel('x坐标', fontsize=14, fontproperties='FangSong')
#误差棒
# plt.legend()
plt.show()

四种放置方式

三、多坐标轴

fg = plt.figure()
ax1 = fg.add_subplot(111)  # 2行2列第一个位置
ax1.plot(x, y_a, color='b', marker='o', linestyle='', label='y_a')
ax1.plot(x, y_a_fit, label='y_a_fit')
ax1.set_title("Double Y axis")
ax1.set_xlabel('x坐标', fontsize=14, fontproperties='FangSong')
ax1.set_ylabel('y1坐标', fontsize=14, fontproperties='FangSong')
plt.legend()
ax2 = ax1.twinx()  # 创建新的孪生x 这步骤最重要
ax2.plot(x, y_b, color='y', linestyle='--', label='y_b')
ax2.set_ylabel('y2坐标', fontsize=14, fontproperties='FangSong')
plt.legend(loc="upper right", bbox_to_anchor=(1, 1))plt.show()

四、局部放大

from mpl_toolkits.axes_grid1.inset_locator import inset_axes, mark_insetfig, ax1 = plt.subplots(1, 1, figsize=(6, 4))
ax1.plot(x, y_a, color='b', marker='o', linestyle='', label='y_a')
ax1.plot(x, y_a_fit, label='y_a_fit')
ax1.legend(labels=["y_a", "y_a_fit"], ncol=2)# 嵌入局部放大图
axins = inset_axes(ax1, width="30%", height="30%", loc='lower left',bbox_to_anchor=(0.1, 0.6, 1, 1),# bbox_to_anchor:边界框,四元数组(x0, y0, width, height),调节放大图位置bbox_transform=ax1.transAxes)
#在子图画一遍,采用放大显示
axins.plot(x, y_a, color='b', marker='o', linestyle='', label='y_a')
axins.plot(x, y_a_fit, label='y_a_fit')
axins.set_xlim(xmin=4.5, xmax=5.5)
axins.set_ylim(ymin=4.5, ymax=5.5)
mark_inset(ax1, axins, loc1=3, loc2=1, fc="none", ec='r', lw=1)
plt.show()

Python matplotlib作图实例,画一张想要的图片相关推荐

  1. python matplotlib画多个图_python matplotlib模块 如何画两张图出来

    展开全部 python matplotlib模块 如何画两张图出2113来的方法:5261 代码如下所示: import numpy as np import matplotlib.pyplot as ...

  2. 如何使用Visual Studio 2005画一张正规的国旗图片

    如何使用Visual Studio 2005画一张正规的国旗图片 绘画一张正规标准的国旗图片是学习C程序最基础的一步,也是必不可少的一步,在学习C程序的第一天,学习绘画国旗是十分必要的,接下来,我将展 ...

  3. Python:matplotlib pyplot库函数 savefig所支持的格式以及图片插入word保存后模糊的完美解决方法

    Python:matplotlib pyplot库函数 savefig所支持的格式以及图片插入word保存后模糊的完美解决方法 202012月更新 savefig支持的格式 图片插入word,保存后不 ...

  4. python matplotlib画图实例正弦 SIN()和余弦COS()曲线

    import matplotlib.pyplot as plt import numpy as np#在画的图中显示中文 plt.rcParams['font.sans-serif'] = ['Sim ...

  5. python matplotlib searbon 设置画版颜色 热力图固定颜色等级 固定比例尺寸大小

    参数vmax.vmin cmap 设置颜色等级,参考:https://blog.csdn.net/pary__for/article/details/104971632 sns.heatmap(glo ...

  6. Python网络爬虫实例(爬一些小网站的图片)

    文章目录 前言 一.爬优美图库(使用bs4和requests) 二.爬ZOL壁纸网(使用bs4和requests) 前言 提示:以下是本篇文章正文内容,下面案例可供参考 一.爬优美图库(使用bs4和r ...

  7. python用for循环画多个图形_Python matplotlib读取excel数据并用for循环画多个子图subplot操作...

    Python matplotlib读取excel数据并用for循环画多个子图subplot操作,英语,总分,平均,数据,语文 Python matplotlib读取excel数据并用for循环画多个子 ...

  8. 【python】python matplotlib绘制并保存多张图片+绘制多张子图

    需求描述:画图对比观测值和预测值,绘制对比图及多张子图 绘制对比图 示例代码 import matplotlib.pyplot as plt import numpy as npobs_x_data ...

  9. Matplotlib 常用画图命令总结:使用 Python 在论文中画出一手漂亮的数据图

    介绍 本文不是一篇详尽的.从简到繁的 Matplotlib 画图教程,而是用各种例子快速直观地让读者上手 Matplotlib 画图中的一些常用的.基础的操作.本文不对各种数据图(折线图.柱状图等)作 ...

最新文章

  1. C++设计模式——简单工厂模式
  2. DES算法详解和代码 - IP置换
  3. 算法提高课-动态规划-树形DP-AcWing 1072. 树的最长路径:dfs写法
  4. 线程池的简单创建和实现
  5. Gmapping——从原理到实践
  6. C语言的atoi和C++的to_string
  7. [Android]对MVC和MVP的总结
  8. 将项目打成war包并用tomcat部署的方法,步骤及注意点
  9. 1×1的卷积核在卷积层的作用----网络中的网络
  10. Code jock使用笔记
  11. 基于Socket实现网络编程
  12. 终极算法---读书笔记
  13. 快速破解IntelliJ IDEA
  14. 详细的 win10+VS+Cuda10 环境配置,图文
  15. java中国象棋棋子走法,中国象棋的规则及各种棋子的走法介绍
  16. C语言数字图像处理进阶---6 LOMO滤镜
  17. java pfx加密_.pfx证书 .cer证书MD5withRSA加密
  18. 【数据挖掘】2022数据挖掘之Matplotlib完整使用(折线图、散点图、柱状图、直方图、饼图)
  19. CheatSheet——PCL
  20. Python输出16进制不带0x补零,整数转16进制,字符串转16进制

热门文章

  1. 国培 计算机远程培训心得,2017年“国培计划”远程教育培训心得体会(1200字)
  2. dede中list标签php,dedecms标签:list标签使用大全
  3. Twitter蓝伟纶:推特现在进中国也打不过微博微信了丨CES 中国之夜
  4. 华为HMS的“生态雪球”,滚动在万物智联的新跑道
  5. Windows系统时间不能修改的解决办法!
  6. CityEngine--Color颜色表
  7. 桌面支持--office365 pop3设置
  8. 11月28日——培训第8天
  9. 逐渐fade-迪杰fdsf@fdsdf#....
  10. 记一次数据挖掘:中文语句情绪多标签分类问题