python matplotlib画图的几个实例--latex,坐标系等

系统 2613 0

文章目录

    • 实例1 学会使用tex/latex
    • 实例2 学会画坐标轴
      • 2.1过程
      • 2.2 典型例子
        • 2.2.1 一条带箭头的竖线
        • 2.2.2 坐标系
        • 2.2.3 坐标系上画三角函数

实例1 学会使用tex/latex

python matplotlib画图的几个实例--latex,坐标系等_第1张图片
第一眼看这个图的时候觉得很震撼,代码来自官网useTex demo,以及Latex
代码在本例题末尾
首先需要注意的是,使用latex时可能会比不使用慢,因为需要调用到latex里面的一些程序,但latex语言美观。
使用latex最简单的方式就是加’$'符号(记住要加r),同时在开头使用rc,设置usetex=True
(第一次调用会比较耗时间,之后就比较快了)

            
              import matplotlib.pyplot as plt
plt.rc('text', usetex=True)

            
          

如一个有latex公式的三角函数图
python matplotlib画图的几个实例--latex,坐标系等_第2张图片

            
              
                import
              
               numpy 
              
                as
              
               np

              
                import
              
               matplotlib
              
                .
              
              pyplot 
              
                as
              
               plt
plt
              
                .
              
              rc
              
                (
              
              
                'text'
              
              
                ,
              
               usetex
              
                =
              
              
                True
              
              
                )
              
              
                #使用latex
              
              

x 
              
                =
              
               np
              
                .
              
              linspace
              
                (
              
              
                -
              
              
                3
              
              
                ,
              
              
                3
              
              
                ,
              
              
                100
              
              
                )
              
              
y 
              
                =
              
               np
              
                .
              
              sin
              
                (
              
              x
              
                )
              
              

plt
              
                .
              
              plot
              
                (
              
              x
              
                ,
              
              y
              
                ,
              
              
                'r'
              
              
                )
              
              
plt
              
                .
              
              xlabel
              
                (
              
              r
              
                '$\theta$'
              
              
                )
              
              
                #一定要加r转义,避免将$读错
              
              
plt
              
                .
              
              ylabel
              
                (
              
              r
              
                '$\delta$'
              
              
                )
              
              
plt
              
                .
              
              text
              
                (
              
              
                -
              
              
                1.5
              
              
                ,
              
              
                .5
              
              
                ,
              
              r
              
                '$\Omega=\theta+\delta+\phi$'
              
              
                )
              
              
                #在位置(-1.5,0.5)处开始写公式
              
              
plt
              
                .
              
              show
              
                (
              
              
                )
              
            
          

下面的代码是上面第一个图的代码

            
              
                import
              
               numpy 
              
                as
              
               np

              
                import
              
               matplotlib
              
                .
              
              pyplot 
              
                as
              
               plt
plt
              
                .
              
              rc
              
                (
              
              
                'text'
              
              
                ,
              
               usetex
              
                =
              
              
                True
              
              
                )
              
              
                # interface tracking profiles
              
              
N 
              
                =
              
              
                500
              
              
delta 
              
                =
              
              
                0.6
              
              
X 
              
                =
              
               np
              
                .
              
              linspace
              
                (
              
              
                -
              
              
                1
              
              
                ,
              
              
                1
              
              
                ,
              
               N
              
                )
              
              
plt
              
                .
              
              plot
              
                (
              
              X
              
                ,
              
              
                (
              
              
                1
              
              
                -
              
               np
              
                .
              
              tanh
              
                (
              
              
                4
              
              
                *
              
               X 
              
                /
              
               delta
              
                )
              
              
                )
              
              
                /
              
              
                2
              
              
                ,
              
              
                # phase field tanh profiles
              
              
         X
              
                ,
              
              
                (
              
              
                1.4
              
              
                +
              
               np
              
                .
              
              tanh
              
                (
              
              
                4
              
              
                *
              
               X 
              
                /
              
               delta
              
                )
              
              
                )
              
              
                /
              
              
                4
              
              
                ,
              
              
                "C2"
              
              
                ,
              
              
                # composition profile
              
              
         X
              
                ,
              
               X 
              
                <
              
              
                0
              
              
                ,
              
              
                'k--'
              
              
                )
              
              
                # sharp interface
              
              
                # legend
              
              
plt
              
                .
              
              legend
              
                (
              
              
                (
              
              
                'phase field'
              
              
                ,
              
              
                'level set'
              
              
                ,
              
              
                'sharp interface'
              
              
                )
              
              
                ,
              
              
           shadow
              
                =
              
              
                True
              
              
                ,
              
               loc
              
                =
              
              
                (
              
              
                0.01
              
              
                ,
              
              
                0.48
              
              
                )
              
              
                ,
              
               handlelength
              
                =
              
              
                1.5
              
              
                ,
              
               fontsize
              
                =
              
              
                16
              
              
                )
              
              
                # the arrow
              
              
plt
              
                .
              
              annotate
              
                (
              
              
                ""
              
              
                ,
              
               xy
              
                =
              
              
                (
              
              
                -
              
              delta 
              
                /
              
              
                2
              
              
                .
              
              
                ,
              
              
                0.1
              
              
                )
              
              
                ,
              
               xytext
              
                =
              
              
                (
              
              delta 
              
                /
              
              
                2
              
              
                .
              
              
                ,
              
              
                0.1
              
              
                )
              
              
                ,
              
              
             arrowprops
              
                =
              
              
                dict
              
              
                (
              
              arrowstyle
              
                =
              
              
                "<->"
              
              
                ,
              
               connectionstyle
              
                =
              
              
                "arc3"
              
              
                )
              
              
                )
              
              
plt
              
                .
              
              text
              
                (
              
              
                0
              
              
                ,
              
              
                0.1
              
              
                ,
              
               r
              
                '$\delta$'
              
              
                ,
              
              
                {
              
              
                'color'
              
              
                :
              
              
                'black'
              
              
                ,
              
              
                'fontsize'
              
              
                :
              
              
                24
              
              
                ,
              
              
                'ha'
              
              
                :
              
              
                'center'
              
              
                ,
              
              
                'va'
              
              
                :
              
              
                'center'
              
              
                ,
              
              
                'bbox'
              
              
                :
              
              
                dict
              
              
                (
              
              boxstyle
              
                =
              
              
                "round"
              
              
                ,
              
               fc
              
                =
              
              
                "white"
              
              
                ,
              
               ec
              
                =
              
              
                "black"
              
              
                ,
              
               pad
              
                =
              
              
                0.2
              
              
                )
              
              
                }
              
              
                )
              
              
                # Use tex in labels
              
              
plt
              
                .
              
              xticks
              
                (
              
              
                (
              
              
                -
              
              
                1
              
              
                ,
              
              
                0
              
              
                ,
              
              
                1
              
              
                )
              
              
                ,
              
              
                (
              
              
                '$-1$'
              
              
                ,
              
               r
              
                '$\pm 0$'
              
              
                ,
              
              
                '$+1$'
              
              
                )
              
              
                ,
              
               color
              
                =
              
              
                'k'
              
              
                ,
              
               size
              
                =
              
              
                20
              
              
                )
              
              
                # Left Y-axis labels, combine math mode and text mode
              
              
plt
              
                .
              
              ylabel
              
                (
              
              r
              
                '\bf{phase field} $\phi$'
              
              
                ,
              
              
                {
              
              
                'color'
              
              
                :
              
              
                'C0'
              
              
                ,
              
              
                'fontsize'
              
              
                :
              
              
                20
              
              
                }
              
              
                )
              
              
plt
              
                .
              
              yticks
              
                (
              
              
                (
              
              
                0
              
              
                ,
              
              
                0.5
              
              
                ,
              
              
                1
              
              
                )
              
              
                ,
              
              
                (
              
              r
              
                '\bf{0}'
              
              
                ,
              
               r
              
                '\bf{.5}'
              
              
                ,
              
               r
              
                '\bf{1}'
              
              
                )
              
              
                ,
              
               color
              
                =
              
              
                'k'
              
              
                ,
              
               size
              
                =
              
              
                20
              
              
                )
              
              
                # Right Y-axis labels
              
              
plt
              
                .
              
              text
              
                (
              
              
                1.02
              
              
                ,
              
              
                0.5
              
              
                ,
              
               r
              
                "\bf{level set} $\phi$"
              
              
                ,
              
              
                {
              
              
                'color'
              
              
                :
              
              
                'C2'
              
              
                ,
              
              
                'fontsize'
              
              
                :
              
              
                20
              
              
                }
              
              
                ,
              
              
         horizontalalignment
              
                =
              
              
                'left'
              
              
                ,
              
              
         verticalalignment
              
                =
              
              
                'center'
              
              
                ,
              
              
         rotation
              
                =
              
              
                90
              
              
                ,
              
              
         clip_on
              
                =
              
              
                False
              
              
                ,
              
              
         transform
              
                =
              
              plt
              
                .
              
              gca
              
                (
              
              
                )
              
              
                .
              
              transAxes
              
                )
              
              
                # Use multiline environment inside a `text`.
              
              
                # level set equations
              
              
eq1 
              
                =
              
               r
              
                "\begin{eqnarray*}"
              
              
                +
              
               \
      r
              
                "|\nabla\phi| &=& 1,\\"
              
              
                +
              
               \
      r
              
                "\frac{\partial \phi}{\partial t} + U|\nabla \phi| &=& 0 "
              
              
                +
              
               \
      r
              
                "\end{eqnarray*}"
              
              
plt
              
                .
              
              text
              
                (
              
              
                1
              
              
                ,
              
              
                0.9
              
              
                ,
              
               eq1
              
                ,
              
              
                {
              
              
                'color'
              
              
                :
              
              
                'C2'
              
              
                ,
              
              
                'fontsize'
              
              
                :
              
              
                18
              
              
                }
              
              
                ,
              
               va
              
                =
              
              
                "top"
              
              
                ,
              
               ha
              
                =
              
              
                "right"
              
              
                )
              
              
                # phase field equations
              
              
eq2 
              
                =
              
               r
              
                '\begin{eqnarray*}'
              
              
                +
              
               \
      r
              
                '\mathcal{F} &=& \int f\left( \phi, c \right) dV, \\ '
              
              
                +
              
               \
      r
              
                '\frac{ \partial \phi } { \partial t } &=& -M_{ \phi } '
              
              
                +
              
               \
      r
              
                '\frac{ \delta \mathcal{F} } { \delta \phi }'
              
              
                +
              
               \
      r
              
                '\end{eqnarray*}'
              
              
plt
              
                .
              
              text
              
                (
              
              
                0.18
              
              
                ,
              
              
                0.18
              
              
                ,
              
               eq2
              
                ,
              
              
                {
              
              
                'color'
              
              
                :
              
              
                'C0'
              
              
                ,
              
              
                'fontsize'
              
              
                :
              
              
                16
              
              
                }
              
              
                )
              
              

plt
              
                .
              
              text
              
                (
              
              
                -
              
              
                1
              
              
                ,
              
              
                .30
              
              
                ,
              
               r
              
                'gamma: $\gamma$'
              
              
                ,
              
              
                {
              
              
                'color'
              
              
                :
              
              
                'r'
              
              
                ,
              
              
                'fontsize'
              
              
                :
              
              
                20
              
              
                }
              
              
                )
              
              
plt
              
                .
              
              text
              
                (
              
              
                -
              
              
                1
              
              
                ,
              
              
                .18
              
              
                ,
              
               r
              
                'Omega: $\Omega$'
              
              
                ,
              
              
                {
              
              
                'color'
              
              
                :
              
              
                'b'
              
              
                ,
              
              
                'fontsize'
              
              
                :
              
              
                20
              
              
                }
              
              
                )
              
            
          

实例2 学会画坐标轴

一个简单的方法是直接画两条线,代表x,y,但是这样不美观,也不好用

2.1过程

matplotlib画图的时候总是默认的方框,有时候想展示的是x,y左边轴。
绘制坐标系需要用到axisartist,这个可以参考官网axisartist
例外也可以参考博文Python-matplotlib绘制带箭头x-y坐标轴图形
官网上给的一个复杂的demo是
python matplotlib画图的几个实例--latex,坐标系等_第3张图片
可见axisartist在画线上还是很实用的。
所以本小节从axisartist说起
创建子图
子图是通过subplot来绘制的,111表示一行一列只有一个图,第三个1是表示第一个图。
如221表示有两行两列(则有四个图)第一个图,分别展示如下。

            
              
                import
              
               matplotlib
              
                .
              
              pyplot 
              
                as
              
               plt

              
                import
              
               mpl_toolkits
              
                .
              
              axisartist 
              
                as
              
               AA

fig 
              
                =
              
               plt
              
                .
              
              figure
              
                (
              
              
                )
              
              
                #创建画布
              
              
ax 
              
                =
              
               AA
              
                .
              
              Subplot
              
                (
              
              fig
              
                ,
              
              
                111
              
              
                )
              
              
fig
              
                .
              
              add_axes
              
                (
              
              ax
              
                )
              
              
                #将坐标ax加入画布中
              
            
          

(111)
python matplotlib画图的几个实例--latex,坐标系等_第4张图片
(221)
python matplotlib画图的几个实例--latex,坐标系等_第5张图片
上下左右(top, bottom,left,right)共四条线,即四个坐标轴,下面隐藏右边和上边

            
              ax
              
                .
              
              axis
              
                [
              
              
                'right'
              
              
                ]
              
              
                .
              
              set_visible
              
                (
              
              
                False
              
              
                )
              
              
ax
              
                .
              
              axis
              
                [
              
              
                'top'
              
              
                ]
              
              
                .
              
              set_visible
              
                (
              
              
                False
              
              
                )
              
            
          

或者

            
              ax.axis['right','top'].set_visible(False)

            
          

python matplotlib画图的几个实例--latex,坐标系等_第6张图片
在y=0处加横坐标(horizontal axis)

            
              
                #在第一个轴(即x轴,nth_coord是nth coordinate的简称,即第n个坐标轴)
              
              
                #当nth_coord=1表示x轴。
              
              
                #所以nth_coord=0, value=0表示画一条x轴,并经过y=0点。
              
              
ax
              
                .
              
              axis
              
                [
              
              
                'y=0'
              
              
                ]
              
              
                =
              
               ax
              
                .
              
              new_floating_axis
              
                (
              
              nth_coord
              
                =
              
              
                0
              
              
                ,
              
               value
              
                =
              
              
                0
              
              
                )
              
              
                # 可以将参数名去掉直接写(0,0)
              
            
          
            
              
                #画一条经过x=0.5的y轴,图见下
              
              
ax
              
                .
              
              axis
              
                [
              
              
                'x=0.5'
              
              
                ]
              
              
                =
              
               ax
              
                .
              
              new_floating_axis
              
                (
              
              nth_coord
              
                =
              
              
                1
              
              
                ,
              
               value
              
                =
              
              
                0.5
              
              
                )
              
            
          

结合上面的知识,我们可以画出如下的图形
python matplotlib画图的几个实例--latex,坐标系等_第7张图片
代码为

            
              
                import
              
               matplotlib
              
                .
              
              pyplot 
              
                as
              
               plt

              
                import
              
               mpl_toolkits
              
                .
              
              axisartist 
              
                as
              
               AA

fig 
              
                =
              
               plt
              
                .
              
              figure
              
                (
              
              
                )
              
              
                #创建画布
              
              
ax 
              
                =
              
               AA
              
                .
              
              Subplot
              
                (
              
              fig
              
                ,
              
              
                111
              
              
                )
              
              
fig
              
                .
              
              add_axes
              
                (
              
              ax
              
                )
              
              
                #将坐标ax加入画布中
              
              
                #设置某些坐标轴不可见
              
              
ax
              
                .
              
              axis
              
                [
              
              
                'right'
              
              
                ,
              
              
                'top'
              
              
                ,
              
              
                'bottom'
              
              
                ]
              
              
                .
              
              set_visible
              
                (
              
              
                False
              
              
                )
              
              
                # 增加浮动轴
              
              
ax
              
                .
              
              axis
              
                [
              
              
                'y=0'
              
              
                ]
              
              
                =
              
               ax
              
                .
              
              new_floating_axis
              
                (
              
              nth_coord
              
                =
              
              
                0
              
              
                ,
              
               value
              
                =
              
              
                0
              
              
                )
              
              
                #如果不想显示坐标轴上的数字可以如下
              
              
                #ax.axis["left"].toggle(ticklabels=False)
              
              
                #给坐标轴添加文本
              
              
ax
              
                .
              
              axis
              
                [
              
              
                'y=0'
              
              
                ]
              
              
                .
              
              label
              
                .
              
              set_text
              
                (
              
              
                'y=0'
              
              
                )
              
              
                #将数字变成红色
              
              
ax
              
                .
              
              axis
              
                [
              
              
                "left"
              
              
                ]
              
              
                .
              
              major_ticklabels
              
                .
              
              set_color
              
                (
              
              
                "r"
              
              
                )
              
              
                #所有轴的数字都变成红色
              
              
                #ax.axis[:].major_ticklabels.set_color("r")
              
              
                #y轴范围
              
              
ax
              
                .
              
              set_ylim
              
                (
              
              
                -
              
              
                4
              
              
                ,
              
              
                4
              
              
                )
              
              

plt
              
                .
              
              show
              
                (
              
              
                )
              
            
          

如果是画一条经过x=0.5的y轴
python matplotlib画图的几个实例--latex,坐标系等_第8张图片
画箭头

            
              ax
              
                .
              
              axis
              
                [
              
              
                'y=0'
              
              
                ]
              
              
                .
              
              set_axisline_style
              
                (
              
              
                '->'
              
              
                ,
              
              size
              
                =
              
              
                1.5
              
              
                )
              
            
          

2.2 典型例子

2.2.1 一条带箭头的竖线

python matplotlib画图的几个实例--latex,坐标系等_第9张图片
python matplotlib画图的几个实例--latex,坐标系等_第10张图片
(图一:数字显示在左边,实心箭头)
python matplotlib画图的几个实例--latex,坐标系等_第11张图片
(图2:数字显示在右边)

            
              
                import
              
               matplotlib
              
                .
              
              pyplot 
              
                as
              
               plt

              
                import
              
               mpl_toolkits
              
                .
              
              axisartist 
              
                as
              
               axisartist

              
                #定义一个画轴线的函数
              
              
                def
              
              
                setup_axes
              
              
                (
              
              fig
              
                ,
              
               rect
              
                )
              
              
                :
              
              
    ax 
              
                =
              
               axisartist
              
                .
              
              Subplot
              
                (
              
              fig
              
                ,
              
               rect
              
                )
              
              
                #建立子图
              
              
    fig
              
                .
              
              add_axes
              
                (
              
              ax
              
                )
              
              
                #子图加入画布
              
              

    ax
              
                .
              
              set_ylim
              
                (
              
              
                -
              
              
                0.1
              
              
                ,
              
              
                1.5
              
              
                )
              
              
    ax
              
                .
              
              set_yticks
              
                (
              
              
                [
              
              
                0
              
              
                ,
              
              
                1
              
              
                ]
              
              
                )
              
              

    ax
              
                .
              
              axis
              
                [
              
              
                :
              
              
                ]
              
              
                .
              
              set_visible
              
                (
              
              
                False
              
              
                )
              
              
                #四条边框线都消失
              
              

    ax
              
                .
              
              axis
              
                [
              
              
                "x"
              
              
                ]
              
              
                =
              
               ax
              
                .
              
              new_floating_axis
              
                (
              
              
                1
              
              
                ,
              
              
                0.5
              
              
                )
              
              
                #y轴经过x=0.5
              
              
    ax
              
                .
              
              axis
              
                [
              
              
                "x"
              
              
                ]
              
              
                .
              
              set_axisline_style
              
                (
              
              
                "->"
              
              
                ,
              
               size
              
                =
              
              
                1.5
              
              
                )
              
              
                #空心箭头
              
              
                #('-|>')实心箭头
              
              
                return
              
               ax


fig 
              
                =
              
               plt
              
                .
              
              figure
              
                (
              
              figsize
              
                =
              
              
                (
              
              
                3
              
              
                ,
              
              
                2.5
              
              
                )
              
              
                )
              
              
                #建立画布,尺寸为长3宽2.5
              
              
fig
              
                .
              
              subplots_adjust
              
                (
              
              top
              
                =
              
              
                0.8
              
              
                )
              
              
                #可不要
              
              
ax1 
              
                =
              
               setup_axes
              
                (
              
              fig
              
                ,
              
              
                "111"
              
              
                )
              
              
                #“111”可以写成111,即str或者int都可以
              
              

ax1
              
                .
              
              axis
              
                [
              
              
                "x"
              
              
                ]
              
              
                .
              
              set_axis_direction
              
                (
              
              
                "left"
              
              
                )
              
              
                #数字显示在左边right则右边
              
              

plt
              
                .
              
              show
              
                (
              
              
                )
              
            
          

2.2.2 坐标系

python matplotlib画图的几个实例--latex,坐标系等_第12张图片

            
              
                import
              
               matplotlib
              
                .
              
              pyplot 
              
                as
              
               plt

              
                import
              
               mpl_toolkits
              
                .
              
              axisartist 
              
                as
              
               axisartist


              
                def
              
              
                setup_axes
              
              
                (
              
              fig
              
                ,
              
               rect
              
                )
              
              
                :
              
              
    ax 
              
                =
              
               axisartist
              
                .
              
              Subplot
              
                (
              
              fig
              
                ,
              
               rect
              
                )
              
              
    fig
              
                .
              
              add_axes
              
                (
              
              ax
              
                )
              
              
                #手动设置y轴,从-0.1开始,我对x轴不做设置
              
              
                #大家可以对比x跟y有什么不同
              
              
    ax
              
                .
              
              set_ylim
              
                (
              
              
                -
              
              
                0.1
              
              
                ,
              
              
                1.5
              
              
                )
              
              
    ax
              
                .
              
              set_yticks
              
                (
              
              
                [
              
              
                0
              
              
                ,
              
              
                0.1
              
              
                ,
              
              
                0.5
              
              
                ]
              
              
                )
              
              
                #手动写参数
              
              
                #4个边框线不可见
              
              
    ax
              
                .
              
              axis
              
                [
              
              
                :
              
              
                ]
              
              
                .
              
              set_visible
              
                (
              
              
                False
              
              
                )
              
              
                #第2条线,即y轴
              
              
    ax
              
                .
              
              axis
              
                [
              
              
                "y"
              
              
                ]
              
              
                =
              
               ax
              
                .
              
              new_floating_axis
              
                (
              
              
                1
              
              
                ,
              
              
                0
              
              
                )
              
              
    ax
              
                .
              
              axis
              
                [
              
              
                "y"
              
              
                ]
              
              
                .
              
              set_axisline_style
              
                (
              
              
                "-|>"
              
              
                ,
              
               size
              
                =
              
              
                1.5
              
              
                )
              
              
                #第一条线,x轴
              
              
    ax
              
                .
              
              axis
              
                [
              
              
                "x"
              
              
                ]
              
              
                =
              
               ax
              
                .
              
              new_floating_axis
              
                (
              
              
                0
              
              
                ,
              
              
                0
              
              
                )
              
              
    ax
              
                .
              
              axis
              
                [
              
              
                "x"
              
              
                ]
              
              
                .
              
              set_axisline_style
              
                (
              
              
                "-|>"
              
              
                ,
              
               size
              
                =
              
              
                1.5
              
              
                )
              
              
                return
              
              
                (
              
              ax
              
                )
              
              

fig 
              
                =
              
               plt
              
                .
              
              figure
              
                (
              
              figsize
              
                =
              
              
                (
              
              
                8
              
              
                ,
              
              
                8
              
              
                )
              
              
                )
              
              
                #设置画布大小(建议可以默认为空括号,不设置大小)
              
              
ax1 
              
                =
              
               setup_axes
              
                (
              
              fig
              
                ,
              
              
                111
              
              
                )
              
              
ax1
              
                .
              
              axis
              
                [
              
              
                "x"
              
              
                ]
              
              
                .
              
              set_axis_direction
              
                (
              
              
                "bottom"
              
              
                )
              
              
                #x轴数字显示在线的下方
              
              
ax1
              
                .
              
              axis
              
                [
              
              
                'y'
              
              
                ]
              
              
                .
              
              set_axis_direction
              
                (
              
              
                'right'
              
              
                )
              
              
                #y轴数字显示在线的右边
              
              

plt
              
                .
              
              show
              
                (
              
              
                )
              
            
          

2.2.3 坐标系上画三角函数

python matplotlib画图的几个实例--latex,坐标系等_第13张图片

            
              
                import
              
               mpl_toolkits
              
                .
              
              axisartist 
              
                as
              
               axisartist

              
                import
              
               numpy 
              
                as
              
               np


              
                #定义坐标轴函数
              
              
                def
              
              
                setup_axes
              
              
                (
              
              fig
              
                ,
              
               rect
              
                )
              
              
                :
              
              
    ax 
              
                =
              
               axisartist
              
                .
              
              Subplot
              
                (
              
              fig
              
                ,
              
               rect
              
                )
              
              
    fig
              
                .
              
              add_axes
              
                (
              
              ax
              
                )
              
              

    ax
              
                .
              
              set_ylim
              
                (
              
              
                -
              
              
                10
              
              
                ,
              
              
                10
              
              
                )
              
              
                #自定义刻度
              
              
                #    ax.set_yticks([-10, 0,9])
              
              
    ax
              
                .
              
              set_xlim
              
                (
              
              
                -
              
              
                10
              
              
                ,
              
              
                10
              
              
                )
              
              
    ax
              
                .
              
              axis
              
                [
              
              
                :
              
              
                ]
              
              
                .
              
              set_visible
              
                (
              
              
                False
              
              
                )
              
              
                #第2条线,即y轴,经过x=0的点
              
              
    ax
              
                .
              
              axis
              
                [
              
              
                "y"
              
              
                ]
              
              
                =
              
               ax
              
                .
              
              new_floating_axis
              
                (
              
              
                1
              
              
                ,
              
              
                0
              
              
                )
              
              
    ax
              
                .
              
              axis
              
                [
              
              
                "y"
              
              
                ]
              
              
                .
              
              set_axisline_style
              
                (
              
              
                "-|>"
              
              
                ,
              
               size
              
                =
              
              
                1.5
              
              
                )
              
              
                #    第一条线,x轴,经过y=0的点
              
              
    ax
              
                .
              
              axis
              
                [
              
              
                "x"
              
              
                ]
              
              
                =
              
               ax
              
                .
              
              new_floating_axis
              
                (
              
              
                0
              
              
                ,
              
              
                0
              
              
                )
              
              
    ax
              
                .
              
              axis
              
                [
              
              
                "x"
              
              
                ]
              
              
                .
              
              set_axisline_style
              
                (
              
              
                "-|>"
              
              
                ,
              
               size
              
                =
              
              
                1.5
              
              
                )
              
              
                return
              
              
                (
              
              ax
              
                )
              
              
                #设置画布
              
              
fig 
              
                =
              
               plt
              
                .
              
              figure
              
                (
              
              figsize
              
                =
              
              
                (
              
              
                8
              
              
                ,
              
              
                8
              
              
                )
              
              
                )
              
              
                #建议可以直接plt.figure()不定义大小
              
              
ax1 
              
                =
              
               setup_axes
              
                (
              
              fig
              
                ,
              
              
                111
              
              
                )
              
              
ax1
              
                .
              
              axis
              
                [
              
              
                "x"
              
              
                ]
              
              
                .
              
              set_axis_direction
              
                (
              
              
                "bottom"
              
              
                )
              
              
ax1
              
                .
              
              axis
              
                [
              
              
                'y'
              
              
                ]
              
              
                .
              
              set_axis_direction
              
                (
              
              
                'right'
              
              
                )
              
              
                #在已经定义好的画布上加入三角函数
              
              
x 
              
                =
              
               np
              
                .
              
              arange
              
                (
              
              
                -
              
              
                15
              
              
                ,
              
              
                15
              
              
                ,
              
              
                0.1
              
              
                )
              
              
y 
              
                =
              
               np
              
                .
              
              sin
              
                (
              
              x
              
                )
              
              
plt
              
                .
              
              plot
              
                (
              
              x
              
                ,
              
              y
              
                )
              
              

plt
              
                .
              
              show
              
                (
              
              
                )
              
            
          

更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论