Python matplotlib作图实例,画一张想要的图片
系列文章目录
可视化是科学数据的呈现比较理想的一种方式,怎样画一张自己想要的图片很重要。
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 系列文章目录
- 前言
- 一、单张折线图
- 主要功能:
- 大小、背景色、网格、图例、坐标、标题、中文字、标题、增加横竖线、保存图片
- 二、组合图
- 主要功能:
- 多图组合,多坐标轴,局部放大
- 偶数张图
- 奇数数张图
- 三、多坐标轴
- 四、局部放大
前言
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作图实例,画一张想要的图片相关推荐
- python matplotlib画多个图_python matplotlib模块 如何画两张图出来
展开全部 python matplotlib模块 如何画两张图出2113来的方法:5261 代码如下所示: import numpy as np import matplotlib.pyplot as ...
- 如何使用Visual Studio 2005画一张正规的国旗图片
如何使用Visual Studio 2005画一张正规的国旗图片 绘画一张正规标准的国旗图片是学习C程序最基础的一步,也是必不可少的一步,在学习C程序的第一天,学习绘画国旗是十分必要的,接下来,我将展 ...
- Python:matplotlib pyplot库函数 savefig所支持的格式以及图片插入word保存后模糊的完美解决方法
Python:matplotlib pyplot库函数 savefig所支持的格式以及图片插入word保存后模糊的完美解决方法 202012月更新 savefig支持的格式 图片插入word,保存后不 ...
- python matplotlib画图实例正弦 SIN()和余弦COS()曲线
import matplotlib.pyplot as plt import numpy as np#在画的图中显示中文 plt.rcParams['font.sans-serif'] = ['Sim ...
- python matplotlib searbon 设置画版颜色 热力图固定颜色等级 固定比例尺寸大小
参数vmax.vmin cmap 设置颜色等级,参考:https://blog.csdn.net/pary__for/article/details/104971632 sns.heatmap(glo ...
- Python网络爬虫实例(爬一些小网站的图片)
文章目录 前言 一.爬优美图库(使用bs4和requests) 二.爬ZOL壁纸网(使用bs4和requests) 前言 提示:以下是本篇文章正文内容,下面案例可供参考 一.爬优美图库(使用bs4和r ...
- python用for循环画多个图形_Python matplotlib读取excel数据并用for循环画多个子图subplot操作...
Python matplotlib读取excel数据并用for循环画多个子图subplot操作,英语,总分,平均,数据,语文 Python matplotlib读取excel数据并用for循环画多个子 ...
- 【python】python matplotlib绘制并保存多张图片+绘制多张子图
需求描述:画图对比观测值和预测值,绘制对比图及多张子图 绘制对比图 示例代码 import matplotlib.pyplot as plt import numpy as npobs_x_data ...
- Matplotlib 常用画图命令总结:使用 Python 在论文中画出一手漂亮的数据图
介绍 本文不是一篇详尽的.从简到繁的 Matplotlib 画图教程,而是用各种例子快速直观地让读者上手 Matplotlib 画图中的一些常用的.基础的操作.本文不对各种数据图(折线图.柱状图等)作 ...
最新文章
- C++设计模式——简单工厂模式
- DES算法详解和代码 - IP置换
- 算法提高课-动态规划-树形DP-AcWing 1072. 树的最长路径:dfs写法
- 线程池的简单创建和实现
- Gmapping——从原理到实践
- C语言的atoi和C++的to_string
- [Android]对MVC和MVP的总结
- 将项目打成war包并用tomcat部署的方法,步骤及注意点
- 1×1的卷积核在卷积层的作用----网络中的网络
- Code jock使用笔记
- 基于Socket实现网络编程
- 终极算法---读书笔记
- 快速破解IntelliJ IDEA
- 详细的 win10+VS+Cuda10 环境配置,图文
- java中国象棋棋子走法,中国象棋的规则及各种棋子的走法介绍
- C语言数字图像处理进阶---6 LOMO滤镜
- java pfx加密_.pfx证书 .cer证书MD5withRSA加密
- 【数据挖掘】2022数据挖掘之Matplotlib完整使用(折线图、散点图、柱状图、直方图、饼图)
- CheatSheet——PCL
- Python输出16进制不带0x补零,整数转16进制,字符串转16进制
热门文章
- 国培 计算机远程培训心得,2017年“国培计划”远程教育培训心得体会(1200字)
- dede中list标签php,dedecms标签:list标签使用大全
- Twitter蓝伟纶:推特现在进中国也打不过微博微信了丨CES 中国之夜
- 华为HMS的“生态雪球”,滚动在万物智联的新跑道
- Windows系统时间不能修改的解决办法!
- CityEngine--Color颜色表
- 桌面支持--office365 pop3设置
- 11月28日——培训第8天
- 逐渐fade-迪杰fdsf@fdsdf#....
- 记一次数据挖掘:中文语句情绪多标签分类问题