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

在matplotlib中,整个图像为一个Figure对象。在Figure对象中可以包含一个或者多个Axes对象。每个Axes(ax)对象都是一个拥有自己坐标系统的绘图区域。所属关系如下:

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

Figure代表一个绘制面板,其中可以包涵多个Axes(即多个图表)。

Axes表示一个图表

一个Axes包涵:titlek, xaxis, yaxis

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

 

title为图像标题,Axis为坐标轴, Label为坐标轴标注,Tick为刻度线,Tick Label为刻度注释。各个对象关系可以梳理成以下内容:

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

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

 

 

坐标轴的核心组成元素:轴脊(4根)  刻度线  刻度标签

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

 

示例

import matplotlib.pyplot as plt



#解决中文显示的问题

plt.rcParams['font.sans-serif'] = 'SimHei'

plt.rcParams['axes.unicode_minus'] = False

x=[-2,-1,0,1,2]

y=[-2,-1,0,1,2]

plt.plot(x,y)

#获得当前的figure

ax = 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')

#设置坐标轴宽度 缩写lw

ax.spines['bottom'].set_linewidth(3)

ax.spines['left'].set_lw(3)

ax.spines['top'].set_linewidth(5)

ax.spines['right'].set_lw(5)

#设置坐标轴样式  缩写ls

ax.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数据可视化入门(七):图形样式,划分画布,共享区域的坐标轴_第5张图片

 

 

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数据可视化入门(七):图形样式,划分画布,共享区域的坐标轴_第6张图片

 

有指示注解

ax.annotate(

    s:注解内容

    xy:被注解位置

    xycoords:xy的坐标系统与折线图在同一坐标系统中

    xytext:注释文本的位置

    weight:注解内容的显示风格

    color:注解内容的颜色

    arrowprops:指示箭头的属性,箭头风格、颜色   )

无指示注解

ax.text(

     xy:注解文本所在的横纵坐标

     string:注释文本内容

     weight:注释文本内容的粗细风格

     color:注释文本内容的字体颜色   )

具体示例可参考之前的例子

你可能感兴趣的:(自学笔记)