本博文源于《python数据可视化》(黑马程序员编著)旨在讲解如何使用python对画出的图表定制出坐标轴、标题、图例、网格、参考线、参考区域、注释文本和表格.

文章目录

  • 1.设置坐标轴标签
    • 1.1 设置x轴的标签
    • 1.2 设置y轴的标签
    • 1.3 示例:正弦和余弦曲线图
  • 2 设置刻度范围和刻度标签
    • 2.1 设置刻度范围
    • 2.2 设置刻度标签
    • 2.3 示例:设置刻度范围与刻度标签的正弦余弦图
  • 3.添加标题和图例
    • 3.1 添加标题
    • 3.2 添加图例
    • 3.3 示例:设置标题和图例的正弦余弦图
  • 4.显示网格
    • 4.1 显示指定样式的网格
    • 4.2 示例:显示网格的正弦余弦图
  • 5. 添加参考线和参考区域
    • 5.1 添加水平参考线
    • 5.2 添加垂直参考线
    • 5.3 添加水平参考区域
    • 5.4 添加垂直参考区域
    • 5.5 示例:添加参考线和参考区域的正余弦图
  • 6. 添加注释文本
    • 6.1 添加指向型注释文本
    • 6.2 添加无指向型注释文本
    • 6.3 示例:添加注释文本的正余弦图
  • 7.添加表格
    • 7.1 添加自定义样式表格
    • 7.2 示例:添加表格的正余弦图

1.设置坐标轴标签

1.1 设置x轴的标签

xlabel(xlabel,fontdict=None,labelpad=None,**kwargs)

该函数参数如下:

  • xlabel:表示x轴标签的文本
  • fontdict:表示控制标签文本样式的字典
  • labelpad:表示标签与坐标轴边框(包括刻度与刻度标签)的距离

1.2 设置y轴的标签

只要把代码中x换成y即可。

ylabel(ylabel, fontdict=None, labelpad=None,**kwargs)

1.3 示例:正弦和余弦曲线图

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.linspace(-np.pi,np.pi,256,endpoint=True)
y1,y2 = np.sin(x),np.cos(x)
plt.plot(x,y1,x,y2)
# 设置x轴和y轴的标签
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.show()

2 设置刻度范围和刻度标签

2.1 设置刻度范围

xlim(left=None,right=None,emit=True,auto=False,*,xmin=None,xmax=None)

该函数常用餐数含义如下:

  • left:表示x轴刻度取值区间的左位数
  • right:表示x轴刻度取值区间的右位数
  • emit:表示是否通知限制变化的观察值,默认为True
  • auto:表示是否允许自动缩放x轴,默认为True
  • xmin:表示x轴刻度的最小值
  • xmax:表示x轴刻度的最大值

同理也可以换位ylim()

2.2 设置刻度标签

xticks(ticks=None,labels=None,**kwargs)
  • ticks:表示刻度显示的位置列表
  • labels:表示指定位置刻度的标签列表

2.3 示例:设置刻度范围与刻度标签的正弦余弦图

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.linspace(-np.pi,np.pi,256,endpoint=True)
y1,y2 = np.sin(x),np.cos(x)
plt.plot(x,y1,x,y2)
# 设置x轴和y轴的标签
plt.xlabel("x轴")
plt.ylabel("y轴")
# 设置x轴的刻度范围和刻度标签
plt.xlim(x.min()*1.5,x.max()*1.5)
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$'])
plt.show()

3.添加标题和图例

3.1 添加标题

title(label, fontdict=None, loc='center', pad=None, **kwargs)

该函数常用参数的含义如下:

  • label:表示标题的文本
  • fontdict:表示控制标题文本样式的字典
  • loc:表示标题的对齐样式,包括’left’,‘right’和’center’三种取值,默认取值为’center’,即居中显示标题
  • pad:表示标题与图表顶部的距离,默认为None

同样的也可以用set_title()函数添加标题

3.2 添加图例

legend(handles,labels,loc,bbox_to_anchor,ncol,title,shadow,fancybox,*args,**kwargs)
  • handles:表示由图形标识构成的列表
  • labels:表示由图例项构成的列表
  • loc:用于控制图例在图表中的位置.
位置编码 位置字符串 说明
0 ‘best’ 自适应
1 ‘upper right’ 右上方
2 ‘upper left’ 左上方
3 ‘lower left’ 左下方
4 ‘lower right’ 右下方
5 ‘right’ 右方
6 ‘center left’ 中心偏左
7 ‘center right’ 中心偏右
8 ‘lower center’ 中心偏下
9 ‘upper center’ 中心偏上
10 ‘center’ 居中
  • bbox_to_anchor:用于控制图例的布局,该参数接受一个包含两个数值的元组,其中第一个数值用于控制图例显示的水平位置,值越大则说明图例显示的位置越偏右;第二个数值用于控制图例的垂直位置,值越大则说明图例显示的位置越偏上
  • ncol:表示图例的列数,默认值为1
  • title:表示图例的标题,默认为None
  • shadow:控制图例后面显示阴影,默认值为None
  • fancybox:控制是否为图例设置圆角边框,默认值为None

3.3 示例:设置标题和图例的正弦余弦图

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.linspace(-np.pi,np.pi,256,endpoint=True)
y1,y2 = np.sin(x),np.cos(x)
plt.plot(x,y1,x,y2)
# 添加图例
lines = plt.plot(x,y1,x,y2)
plt.legend(lines,['正弦','余弦'],shadow=True,fancybox=True)
# 设置x轴和y轴的标签
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.xlim(x.min()*1.5,x.max()*1.5)
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$'])
# 添加标题
plt.title('正弦曲线和余弦曲线')
plt.show()

4.显示网格

4.1 显示指定样式的网格

grid(b=None,which='major',axis='both',**kwargs)

该函数参数如下:

  • b:表示是否显示网格,若提供其它关键字参数,则b参数设为True
  • which:表示显示网格的类型,支持major,minor,both这三种类型,默认为major
  • axis:表示显示哪个方向的网格,该参数支持both、x和y这三个选项,默认为both
  • linewidth或lw:表示网格线的宽度

如果坐标轴没有刻度,就无法显示网格.

4.2 示例:显示网格的正弦余弦图

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.linspace(-np.pi,np.pi,256,endpoint=True)
y1,y2 = np.sin(x),np.cos(x)
plt.plot(x,y1,x,y2)
lines = plt.plot(x,y1,x,y2)
plt.legend(lines,['正弦','余弦'],shadow=True,fancybox=True)
# 显示网格
plt.grid(b=True,axis='y',linewidth=0.3)
# 设置x轴和y轴的标签
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.xlim(x.min()*1.5,x.max()*1.5)
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$'])
plt.title('正弦曲线和余弦曲线')
plt.show()

5. 添加参考线和参考区域

5.1 添加水平参考线

axhline(y=0,xmin=0,xmax=1,linestyle='-',**kwargs)
  • y:表示水平参考线的纵坐标
  • xmin:表示水平参考线的起始位置,默认为0
  • xmax:表示水平参考线的终止位置,默认为1
  • linestyle:表示水平参考线的的类型,默认为实线

5.2 添加垂直参考线

将上面的axhiline改成axline,x轴换成y轴即可.

5.3 添加水平参考区域

axhspan(ymin,ymax,xmin=0,xmax=1,**kwargs)
  • ymin:表示水平跨度的下限,以数据为单位
  • ymax:表示水平跨度的上限,以数据为单位
  • xmin:表示垂直跨度的下限,以轴为单位,默认为0
  • xmax:表示垂直跨度的上限,以轴为单位,默认为1

5.4 添加垂直参考区域

axvspan(xmin,xmax,ymin=0,ymax=1,**kwargs)
  • xmin:表示垂直跨度的下限
  • xmax:表示垂直跨度的上限

5.5 示例:添加参考线和参考区域的正余弦图

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.linspace(-np.pi,np.pi,256,endpoint=True)
y1,y2 = np.sin(x),np.cos(x)
plt.plot(x,y1,x,y2)
lines = plt.plot(x,y1,x,y2)
plt.legend(lines,['正弦','余弦'],shadow=True,fancybox=True)
# 添加网格线
plt.grid(b=True,axis='y',linewidth=0.3)
# 添加参考线
plt.axvline(x=0, linestyle='--')
plt.axhline(y=0, linestyle='--')
# 添加参考区域
plt.axvspan(xmin=0.5,xmax=2.0,alpha=0.3)
plt.axhspan(ymin=0.5,ymax=1.0,alpha=0.3)
# 设置x轴和y轴的标签
plt.xlabel("x轴")
plt.ylabel("y轴")plt.xlim(x.min()*1.5,x.max()*1.5)
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$'])
plt.title('正弦曲线和余弦曲线')
plt.show()

6. 添加注释文本

指向型注释文本一般是指真丢图表某一部分的特定说明,无指向型注释文本一般是针对图表整体的特定说明

6.1 添加指向型注释文本

annotate(x,xy,*args,**kwargs)
  • s:表示注释文本的内容
  • xy:表示被注释的点的坐标位置,接收元组(x,y)
  • xytext:表示注释文本所在的坐标位置,接收元组(x,y)
  • xycoords:表示xy的坐标系统,默认值为’data’,代表域折线图使用相同的坐标系统
  • arrowprops:表示指示箭头的属性字典
  • bbox:表示注释文本的边框属性字典

arrowprops参数接收一个包含若干键的字典,通过向字典中添加键值对来控制箭头的显示。常见的控制箭头包括width,headwidth,headlength,shrink,arrowstyle等,其中arrowstyle代表箭头的类型,分别有:

取值
-
->
-[
|-|
-|>
<-
<->
<|-
<|-|>
fancy
simple
wedge

6.2 添加无指向型注释文本

text(x,y,s,fontdict=None, withdash =<deprecated parameter>,**kwargs)

该函数常用参数含义如下:

  • x,y:表示注释文本的位置
  • s:表示注释文本的内容
  • fontdict:表示控制字体的字典
  • bbox:表示注释文本的边框属性字典
  • horizontalalignment或ha:表示水平对齐方式,可以取值为center、right或left.
  • vertcalalignment或va:表示垂直对齐的方式,可以取值为center、top、bottom、baseline或center_baseline.

6.3 示例:添加注释文本的正余弦图

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.linspace(-np.pi,np.pi,256,endpoint=True)
y1,y2 = np.sin(x),np.cos(x)
plt.plot(x,y1,x,y2)
lines = plt.plot(x,y1,x,y2)
plt.legend(lines,['正弦','余弦'],shadow=True,fancybox=True)
plt.grid(b=True,axis='y',linewidth=0.3)
plt.axvline(x=0, linestyle='--')
plt.axhline(y=0, linestyle='--')
# 添加参考区域
plt.axvspan(xmin=0.5,xmax=2.0,alpha=0.3)
plt.axhspan(ymin=0.5,ymax=1.0,alpha=0.3)
# 设置x轴和y轴的标签
plt.xlabel("x轴")
plt.ylabel("y轴")plt.xlim(x.min()*1.5,x.max()*1.5)
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$'])
# 添加指向型注释文本
plt.annotate("最小值",xy=(-np.pi/2,-1.0),xytext=(-(np.pi/2),-0.5),arrowprops=dict(arrowstyle='->'))
# 添加标题
plt.title('正弦曲线和余弦曲线')
# 添加无指向型注释文本
plt.text(3.10, 0.10, "y=sin(x)", bbox=dict(alpha=0.2))
plt.show()

7.添加表格

7.1 添加自定义样式表格

table(celText=None, cellColours=None, cellLoc='right', colWidths=None,
rowLabels=None, rowColours=None, rowLoc='left', colLabels=None,
colColours=None, colLoc='center',loc='bottom',bbox=None,
edge='closed',**kwargs)
  • cellText:表示表格单元格中的数据,是一个二维列表
  • cellColours:表示单元格的背景颜色
  • cellLoc:表示单元格文本的对齐方式,支持’left’,‘right’,‘center’三种取值,默认为’right’.
  • colWidths:表示每列的宽度
  • rowLabels:表示行标题的文本
  • rowColours:表示行标题所在单元格的背景颜色
  • rowLoc:表示行标题的对齐方式
  • colLabels:表示列标题的文本
  • colColours:表示列标题所在单元格的背景颜色
  • colLoc:表示列标题的对齐方式
  • loc:表示表格与绘图区域的对齐方式

7.2 示例:添加表格的正余弦图

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.linspace(-np.pi,np.pi,256,endpoint=True)
y1,y2 = np.sin(x),np.cos(x)
plt.plot(x,y1,x,y2)
lines = plt.plot(x,y1,x,y2)
plt.legend(lines,['正弦','余弦'],shadow=True,fancybox=True)
plt.grid(b=True,axis='y',linewidth=0.3)
plt.axvline(x=0, linestyle='--')
plt.axhline(y=0, linestyle='--')
# 添加参考区域
plt.axvspan(xmin=0.5,xmax=2.0,alpha=0.3)
plt.axhspan(ymin=0.5,ymax=1.0,alpha=0.3)
# 设置x轴和y轴的标签
plt.xlabel("x轴")
plt.ylabel("y轴")plt.xlim(x.min()*1.5,x.max()*1.5)
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$'])
plt.annotate("最小值",xy=(-np.pi/2,-1.0),xytext=(-(np.pi/2),-0.5),arrowprops=dict(arrowstyle='->'))
plt.title('正弦曲线和余弦曲线')
# 添加无指向型注释文本
plt.text(3.10, 0.10, "y=sin(x)", bbox=dict(alpha=0.2))
# 添加表格
plt.table(cellText=[[r'$\pi/6$',r'$\pi/4$',r'$\pi/3$'],[r'$\frac{1}{2}$',r'$\frac{\sqrt{2}}{2}$',r'$\frac{\sqrt{3}}{2}$']],colWidths=[0.1]*3,rowLabels=['第1行','第2行'],colLabels=['第1列','第2列','第3列'],loc='lower right')plt.show()

如何为py图表添加坐标轴/标题/图例等辅助元素相关推荐

  1. 在 Excel 2007中手动为坐标图添加坐标轴标题

    Excel 做图时更改横纵坐标轴标题. 单击要对其添加坐标轴标题的图表. 此操作将显示"图表工具",其中包含"设计"."布局"和" ...

  2. 如何设置 jqplot 图表插件的标题图例和直线

    好, 我想大部分朋友都已经有回到了让人痛苦的办公桌上, 给大家带来我攒好的一篇文章, 关于 jqplot 的标题, 图例和直线的设置. 本文将详细的讲解如何设置 Plot 图表的标题, 图例和序列, ...

  3. Latex中给图表添加中英文标题及生成相关目录

    通常我们都是用\caption{这里是标题}的方式给图表添加对应的标题,如果我们需要同时给出两个标题呢?(例如某些毕业论文中要求同时给出中英文标题)如果我们还要生成对应的图表目录呢?这些问题都可以利用 ...

  4. echarts 折线图 设置y轴最小刻度_用plotly和plt画图的基本设置(标题、坐标轴、图例、注释、图像)...

    参考链接:用plotly和plt画图的基本设置(标题.坐标轴.图例.注释.图像) - weixin_41670527的博客 - CSDN博客 非常好的文章,值得推荐. 一 用matplotlib.py ...

  5. 设置图表标题、坐标轴标题及窗口标题

    设置图表标题.坐标轴标题及窗口标题 图表开发工具为:Oracle Forms 6i Graphics_Builder 1.  设置图表标题: --功能:设置图表标题. --创建人:XXX --创建时间 ...

  6. 怎么更改坐标轴标题access_excel2013设置图表坐标轴刻度的教程

    在EXCEL中,图表是勘察数据的最重要途径之一,图表做好了才可以更好的勘察数据,或许还有朋友不知道图表的数据轴的刻度不知道怎么设置,接下来是学习啦小编为大家带来的excel2013设置图表坐标轴刻度的 ...

  7. Excel添加坐标轴单位的方法

    菜单栏:设计-添加图表元素-坐标轴标题-更多轴标题选项 示例如图

  8. ggplot2学习笔记9:标度、坐标轴和图例(二)

    Scales, Axes and Legends 文章目录 Scales, Axes and Legends 6.5 限制范围(Limits) 6.6 标度工具箱(Scales Toolbox) 6. ...

  9. matplotlib添加行列标题、axes.axis以及axes.xaxis.set_ticklabels相关使用方法

    利用matplotlib的axes.set_title添加子图标题 今天同学问我matplotlib进行可视化,如何添加列标题,以下是我写的相关脚本: import matplotlib.pyplot ...

最新文章

  1. POJ - 2942 Knights of the Round Table (双连通分量)
  2. 在.NET中使用DiagnosticSource
  3. HIVE: hive.error.on.empty.partition
  4. 金融数据分析熟练使用Excel
  5. 数据库---事务(一)
  6. Android InputType
  7. 万稞pw80线切割编程软件_现在模具设计,编程行业,还是很吃香的
  8. centos异常断电重启后,无法进入系统
  9. 推荐系统 - 多目标模型融合部分
  10. 对于人工智能的认识,我们需要更深入全面的理解
  11. matlab emd功率谱密度,基于EMD方法的地心运动时间序列分析
  12. Mysq查询性能调优
  13. oracle linux7.9安装 Oracle Enterprise Manager Cloud Control13.5
  14. 免费的天气预报API--谷歌,雅虎,中央气象台
  15. 中国联通云数据有限公司总经理焦刚:沃筑生态,共创未来
  16. superword中一次精彩的重构
  17. FDTD Solutions v2.2 1CD+ASAP
  18. python分层聚类_使用Python分层聚类进行机器学习
  19. 7d聚拉提的功效和原理,做完7d聚拉提三天后脸变大是怎么回事
  20. bben计算机配置,震惊!世界上最小的电脑主机,只有U盘大小!

热门文章

  1. 图像信息处理:bmp文件、颜色空间转化、灰度图
  2. C++ snippets
  3. codeforces contest 869 problem C(组合数)
  4. 游戏建模行业就国内发展的前景,以及行业变化是如何的?
  5. 临时表与SELECT INTO、INSERT INTO SELECT
  6. android 里面的颜色的RGB
  7. UKF-MATLAB实现
  8. linux得到网卡mac地址,获取 linux 网卡MAC地址(包含编程方法)
  9. java玫瑰花代码_教小白用Html代码做玫瑰花
  10. True Type 文件格式规范