matplotlib.pyplot常用画图方式函数封装(一)——.plot绘制折线图及设置坐标轴箭头完美解决
matplotlib.pyplot常用画图方式函数封装(一)——.plot绘制折线图及设置坐标轴箭头完美解决
- py.plot常见绘图设置函数封装
- 绘制函数图像(完美解决坐标轴添加箭头)
- 绘制折线图
py.plot常见绘图设置函数封装
本文主要针对运用py.plot作图时的常用设置进行了函数封装,一般来说,py.plot常用作绘制函数图像和折线图,对于绘制函数图像时的坐标轴箭头问题,本文做出了完美解决。进行自主封装的函数设定了许多默认参数,调用者可根据自己的具体业务进行设定。
绘制函数图像(完美解决坐标轴添加箭头)
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from matplotlib import font_manager
import seaborn as sns# 设置字体
ft = font_manager.FontProperties(fname = "C://Windows/Fonts/simsun.ttc",size = 18)
def function_fig(df,grid = True,save = False,dpi_value = 72,fig_size = (20,8),show = True,arrow = True):# 初始化画布figure = plt.figure(figsize = fig_size,dpi = dpi_value)ax = figure.add_subplot(111)# 绘图plt.plot(df.iloc[:,0],df.iloc[:,1],color = "blue",linewidth = 2,linestyle = "-")# 设置坐标轴显示plt.xticks(fontproperties = ft,size = 22)plt.yticks(fontproperties = ft,size = 22)# 设置坐标轴显示范围plt.axis([-max(abs(df.iloc[:,0].min()-0.05*(df.iloc[:,0].max()-df.iloc[:,0].min())),abs(df.iloc[:,0].max()+0.05*(df.iloc[:,0].max()-df.iloc[:,0].min()))),max(abs(df.iloc[:,0].min()-0.05*(df.iloc[:,0].max()-df.iloc[:,0].min())),abs(df.iloc[:,0].max()+0.05*(df.iloc[:,0].max()-df.iloc[:,0].min()))),-max(abs(df.iloc[:,1].min()-0.05*(df.iloc[:,1].max()-df.iloc[:,1].min())),abs(df.iloc[:,1].max()+0.05*(df.iloc[:,1].max()-df.iloc[:,1].min()))),max(abs(df.iloc[:,1].min()-0.05*(df.iloc[:,1].max()-df.iloc[:,1].min())),abs(df.iloc[:,1].max()+0.05*(df.iloc[:,1].max()-df.iloc[:,1].min())))])# 去除上、右边框ax = plt.gca()ax.spines["top"].set_color("none")ax.spines["right"].set_color("none")# 调整x轴和y轴ax.spines["left"].set_position(("data",0))ax.spines["bottom"].set_position(("data",0))y_max = max(abs(df.iloc[:,1].min()-0.05*(df.iloc[:,1].max()-df.iloc[:,1].min())),abs(df.iloc[:,1].max()+0.05*(df.iloc[:,1].max()-df.iloc[:,1].min())))x_max = max(abs(df.iloc[:,0].min()-0.05*(df.iloc[:,0].max()-df.iloc[:,0].min())),abs(df.iloc[:,0].max()+0.05*(df.iloc[:,0].max()-df.iloc[:,0].min())))# 设置x轴和y轴的箭头ax.arrow(0, (1-0.04*fig_size[0]/fig_size[1])*y_max, 0, 0.04*fig_size[0]/fig_size[1]*y_max,head_width=0.04*fig_size[1]/fig_size[0]*x_max,head_length=0.04*fig_size[0]/fig_size[1]*y_max,fc='black',length_includes_head=True)ax.arrow( 0.96*x_max, 0, 0.04*x_max,0,head_width=0.04*y_max,head_length=0.04*x_max,fc='black',length_includes_head=True)# 设置网格线if grid == True:plt.grid(linestyle = "-",alpha = 0.5)if save == True:plt.savefig("./"+str(df.columns.tolist()[0])+"&"+df.columns.tolist()[1]+".jpg")if show == True:plt.show()if __name__ == "__main__":df = pd.read_excel("./data.xlsx",header = 0,sheet_name = "Sheet1")function_fig(df)
绘制结果:
绘制折线图
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from matplotlib import font_manager
import seaborn as sns# 设置字体
ft = font_manager.FontProperties(fname = "C://Windows/Fonts/simsun.ttc",size = 18)
# 自定义折线图函数
def line_fig(df,grid = True,show = True,save = False,dpi_value = 72,fig_size = (20,8)):# 初始化画布figure = plt.figure(dpi = dpi_value,figsize = fig_size)ax = figure.add_subplot(111)# 做折线图plt.plot(df.iloc[:,0],df.iloc[:,1],color = "blue",linestyle = "-",marker = "o",markersize = 6,markeredgecolor = "crimson",markeredgewidth = 6,linewidth = 2)# 设置坐标轴显示plt.xticks(df.iloc[:,0],fontproperties = ft,size = 22)plt.yticks(fontproperties = ft,size = 22)plt.xlabel(df.columns.tolist()[0],fontproperties = ft,size = 25)plt.ylabel(df.columns.tolist()[1],fontproperties = ft,size = 25)# 设置坐标轴显示范围plt.axis([df.iloc[:,0].min()-0.05*(df.iloc[:,0].max()-df.iloc[:,0].min()),df.iloc[:,0].max()+0.05*(df.iloc[:,0].max()-df.iloc[:,0].min()),df.iloc[:,1].min()-0.1*(df.iloc[:,1].max()-df.iloc[:,1].min()),df.iloc[:,1].max()+0.1*(df.iloc[:,1].max()-df.iloc[:,1].min())])# 去除上、右边框ax = plt.gca()ax.spines["top"].set_color("none")ax.spines["right"].set_color("none")# 设置网格线if grid == True:plt.grid(axis = "y",linestyle = "-",alpha = 0.5)if save == True:plt.savefig("./"+str(df.columns.tolist()[0])+"&"+df.columns.tolist()[1]+".jpg")if show == True:plt.show()
if __name__ == "__main__":df = pd.read_excel("./data.xlsx",header = 0,sheet_name = "Sheet1")line_fig(df)
绘制结果如下:
by CyrusMay 2020 04 10
幻想着未来
满头白发
公园的长椅上
你也许会说
一声谢谢我
如果这一生
到尽头
换你的这句话
很足够
——————五月天——————
matplotlib.pyplot常用画图方式函数封装(一)——.plot绘制折线图及设置坐标轴箭头完美解决相关推荐
- Python:matplotlib pyplot库函数 savefig所支持的格式以及图片插入word保存后模糊的完美解决方法
Python:matplotlib pyplot库函数 savefig所支持的格式以及图片插入word保存后模糊的完美解决方法 202012月更新 savefig支持的格式 图片插入word,保存后不 ...
- r语言plot函数x轴y轴名字_Matplotlib入门-1-plt.plot( )绘制折线图
在Python学堂1-8中,我们通过一个实例(温湿度变化曲线对比分析图)对Matplotlib模块中的常用折线图进行了初步的认知学习.本章及后续几章内容是对前面内容的总结以及细化.系统性的带领大家共同 ...
- python matplotlib绘制折线图
前言 众所周知,matplotlib 是一款功能强大开源的数据可视化模块,凭借着强大的扩展性构建出更高级别的绘图工具接口如seaborn.ggplot.我们来看看往期学习章节内容概述吧~ 接下来,我们 ...
- 「解析」Matplotlib 绘制折线图
相比于[优雅]matplotlib 常见图.[优雅]matplotlib 3D图 而言,折线图使用的频率会更高一些,在此整理下最近使用 Matplotlib 绘制折线图常用的一些配置,小伙伴们只需要修 ...
- python学习之数据分析(二):Matplotlib库:常用画图技巧, 折线图, 散点图,柱状图,直方图, 饼图
一.Matplotlib之HelloWorld 1. 什么是Matplotlib: 专门用于开发2D图表(包括3D图表) 使用起来及其简单 以渐进.交互式方式实现数据可视化 2. matplotlib ...
- Py之matplotlib.pyplot:matplotlib.pyplot的plt.legend函数的简介、使用方法之详细攻略
Py之matplotlib.pyplot:matplotlib.pyplot的plt.legend函数的简介.使用方法之详细攻略 目录 matplotlib.pyplot的plt.legend函数的简 ...
- 【最简单的python画折线图】半封装式代码画折线图,防止写重复代码
一.为什么要写这个代码 很多时候画散点的折线图时,总是忘记代码细节怎么写,于是就想不如花点时间写几个函数,把画图的功能封装一下,下次画图这部分代码就能与其他代码隔离开来.使用者无需过多关注内部细节,只 ...
- 第一章 使用 matplotlib 绘制折线图
系列文章目录 第一章 使用 matplotlib 绘制折线图 第二章 使用 matplotlib 绘制条形图 第三章 使用 matplotlib 绘制直方图 第四章 使用 matplotlib 绘制散 ...
- python绘制折线图保存_Python利用matplotlib绘制折线图的新手教程
前言 matplotlib是Python中的一个第三方库.主要用于开发2D图表,以渐进式.交互式的方式实现数据可视化,可以更直观的呈现数据,使数据更具说服力. 一.安装matplotlib pip i ...
最新文章
- VTK:Utilities之CardinalSpline
- 【计蒜客习题】消除字符串
- DIV+CSS列表式布局(同意图片的应用)
- 这个世界本来就是残酷的,所以你不能怪C++向你展示了世界的本质!
- Bootstrap 导航
- IOS13图标尺寸_苹果iOS 13特性大猜想:新增黑暗模式、多窗口应用、手势导航
- wxPython 资料链接
- PJ可能会用到的动态规划选讲-学习笔记
- 【Love2D】第0章-从零开始学习Love2D
- 使用selenium获取网页源码
- 什么是高中物理?一篇长长长长文告诉你!
- AtCoder - agc005_b(单调栈)
- 罗永浩刚直播完,就被罚款拘留?老罗是这么回应的...
- Operation CREATE USER failed for 'lin'@'host'
- 怎么给其他账号的服务器备案
- BugReport 概述
- Mysql之MyISAM存储引擎
- 如何将图片验证码转换为文字,图片识别。
- 交换机虚拟化和堆叠的区别_交换机链路冗余、链路聚合、堆叠、热备、虚拟化...
- 服务器无线网卡无法启动不了怎么办,wifi共享精灵启动不了怎么办
热门文章
- 动态管理配置文件扩展接口EnvironmentPostProcessor
- 也许,DOM 不是答案
- oracle命令格式,OraCmD(Oracle命令行工具) V3.1 官方版
- php url传递参数_python+Requests接口自动化测试之传递 URL 参数
- Oracle大象,大象工程(石头剪刀布PK游戏)
- android中暂停服务,Android暂停服务,线程,Asynctask?使用postdelayed的处理程序呢?...
- 三刷进博 | 跨界直播,组团参展,施耐德电气有备而来!
- 数组中没有给初始值_Array中的reduce()、filter()、map()几张图搞懂
- 成功解决ValueError: row index was 65536, not allowed by .xls format
- Interview:算法岗位面试—11.15下午上海某航天***公司(国企)技术面之工业机器视觉认知、计算机视觉算法的理解、目标检测相关项目案例