python数据可视化入门(七)(图形样式,划分画布,共享区域的坐标轴)

在matplotlib中,整个图像为一个Figure对象。在Figure对象中可以包含一个或者多个Axes对象。每个Axes(ax)对象都是一个拥有自己坐标系统的绘图区域。所属关系如下:
python数据可视化入门(七)(图形样式,划分画布,共享区域的坐标轴)
文章图片

Figure代表一个绘制面板,其中可以包涵多个Axes(即多个图表)。
Axes表示一个图表
一个Axes包涵:titlek, xaxis, yaxis
python数据可视化入门(七)(图形样式,划分画布,共享区域的坐标轴)
文章图片


title为图像标题,Axis为坐标轴, Label为坐标轴标注,Tick为刻度线,Tick Label为刻度注释。各个对象关系可以梳理成以下内容:
python数据可视化入门(七)(图形样式,划分画布,共享区域的坐标轴)
文章图片

  • 上图像中所有对象均来自于Artist的基类。
  • 一个”Figure”意味着用户交互的整个窗口。在这个figure中容纳着”subplots”。
  • 当我们调用plot时,matplotlib会调用gca()获取当前的axes绘图区域,而且gca反过来调用gcf()来获得当前的figure。
  • 如果figure为空,它会自动调用figure()生成一个figure, 严格的讲,是生成subplots(111)。


坐标轴的核心组成元素:轴脊(4根)刻度线刻度标签
python数据可视化入门(七)(图形样式,划分画布,共享区域的坐标轴)
文章图片


示例
import matplotlib.pyplot as plt#解决中文显示的问题plt.rcParams['font.sans-serif'] = 'SimHei'plt.rcParams['axes.unicode_minus'] = Falsex=[-2,-1,0,1,2]y=[-2,-1,0,1,2]plt.plot(x,y)#获得当前的figureax = plt.gca()#设置坐标轴颜色ax.spines['right'].set_color('r')ax.spines['top'].set_color('y')ax.spines['left'].set_color('r')ax.spines['bottom'].set_color('y')#设置坐标轴宽度 缩写lwax.spines['bottom'].set_linewidth(3)ax.spines['left'].set_lw(3)ax.spines['top'].set_linewidth(5)ax.spines['right'].set_lw(5)#设置坐标轴样式缩写lsax.spines['top'].set_linestyle('--')ax.spines['right'].set_ls('-.')#设置坐标轴标签字体样式plt.xlabel('成绩',fontdict={"color":'red','size':30})#设置坐标轴刻度显示方向plt.xticks([-2,-1,0,1,2],rotation='vertical')#设置坐标轴刻度数值与名称plt.yticks([-2,-1,0,1,2],['-π','-π/2','0','π/2','π'],\fontdict={"color":'red','size':20})#设置坐标轴刻度的显示位置#ax.xaxis.set_ticks_position('top')#隐藏坐标轴#ax.spines['top'].set_color('none')#ax.spines['right'].set_color('none')#设置坐标轴交叉显示#ax.spines['bottom'].set_position('center')#ax.spines['left'].set_position('center')plt.show()

python数据可视化入门(七)(图形样式,划分画布,共享区域的坐标轴)
文章图片



Axis容器

Axis容器包括也坐标轴上的刻度线、刻度文本、坐标网格以及坐标轴标题等内容。
刻度包括:主刻度(get_major_ticks)和副刻度(get_minor_ticks)
每个刻度线都是一个xTick或yTick对象,它包括实际的刻度线和刻度文本。

FigureCanvas 和 Renderer 需要处理底层的绘图操作
Artist对象则处理所有的高层结构,例如处理图表、文字和曲线线等各种绘图元素的绘制和布局。
通常我们只和Artist对象打交道,而不需要关心底层是如何实现绘图细节的。
Artist对象分为简单类型和容器类型两种。
简单类型的Artist对象是标准的绘图元件,例如 Line2D、Rectangle、Text、AxesImage等。
而容器类型则可以包含多个Artist对象,使它们组织成一个整体,例如Axis、Axes、Figure等。

刻度定位器(locator):设置刻度线的位置。
刻度格式器(formatter):设置刻度标签的显示样式。
ax.tick_params( #which=“major”
which:设置主刻度的样式
length:设置主刻度线的长度
width:设置主刻度线的宽度
colors:设置主刻度线和主刻度标签的颜色)
ax.tick_params( #which=“minor”
which:设置副刻度的样式
length:设置副刻度线的长度
width:设置副刻度线的宽度
labelsize:设置副刻度标签的大小
labelcolor:设置副刻度标签的颜色)
python数据可视化入门(七)(图形样式,划分画布,共享区域的坐标轴)
文章图片


有指示注解
ax.annotate(
s:注解内容
xy:被注解位置
xycoords:xy的坐标系统与折线图在同一坐标系统中
xytext:注释文本的位置
weight:注解内容的显示风格
color:注解内容的颜色
arrowprops:指示箭头的属性,箭头风格、颜色)
无指示注解
ax.text(
xy:注解文本所在的横纵坐标
string:注释文本内容
weight:注释文本内容的粗细风格
color:注释文本内容的字体颜色)
【python数据可视化入门(七)(图形样式,划分画布,共享区域的坐标轴)】具体示例可参考之前的例子

    推荐阅读