Python中matplotlib绘图库基础内容

matplotlib绘图库基础

参考文章链接:https://blog.csdn.net/qq_30992103/article/details/101905466

本文对其中基础部分的代码做了一定解释并增加修改部分内容

'''
matplotlib是Python最常用的绘图库,在深度学习中也会经常用到,因此单独进行学习

1.一个例子

这里构建四个点,分别为(1,2.2) (2,3.3) (3,4.7) (4,5.9)

并进行最基础的展示学习
"""

#先来解释一下matplotlib的基本操作
from pylab import *
import matplotlib.pyplot as plt #导包
import numpy as np
#相当于创建四个点
x = [1, 2, 3, 4]
y = [2.2,3.3,4.7,5.9]

plt.plot(x,y) #这是借用plot函数进行作图
plt.show()  #上述的plot函数是作图,show函数则是展示图

"""2.matplotlib基础函数解析

最基础函数有cos()与sin()函数

linspace函数:start表示起始值,end表示结束值,num表示取多少参考点,endpoint表示是否包含端点
"""

x = np.linspace(start = -np.pi,stop = np.pi,num = 100,endpoint = True) #这是设定了x轴的表示范围是从-π到π
c, s = np.cos(x), np.sin(x)
#利用plot函数构建两条曲线
plt.plot(x, c)
plt.plot(x, s)
#展示曲线
show()

"""2.plot函数详解

plot是图像构造函数,其参数非常重要。

基本参数如下:

plot([x], y, [fmt], data=None, **kwargs)

这里x代表x轴范围及参考点等信息,y代表函数信息

fmt是fmt = [color][marker][linestyle](颜色,点型,线型),是这三个参数的缩写,若用fmt表示只能用缩写,否则只可用全称。详细字母代表的颜色点型线型请自查

基本颜色:

    =============    ===============================
    character        color
    =============    ===============================
    ``'b'``          blue 蓝
    ``'g'``          green 绿
    ``'r'``          red 红
    ``'c'``          cyan 蓝绿
    ``'m'``          magenta 洋红
    ``'y'``          yellow 黄
    ``'k'``          black 黑
    ``'w'``          white 白
    =============    ===============================

基本点型:

    character        description
    =============    ===============================
    ``'.'``          point marker
    ``','``          pixel marker
    ``'o'``          circle marker
    ``'v'``          triangle_down marker
    ``'^'``          triangle_up marker
    ``'<'``          triangle_left marker
    ``'>'``          triangle_right marker
    ``'1'``          tri_down marker
    ``'2'``          tri_up marker
    ``'3'``          tri_left marker
    ``'4'``          tri_right marker
    ``'s'``          square marker
    ``'p'``          pentagon marker
    ``'*'``          star marker
    ``'h'``          hexagon1 marker
    ``'H'``          hexagon2 marker
    ``'+'``          plus marker
    ``'x'``          x marker
    ``'D'``          diamond marker
    ``'d'``          thin_diamond marker
    ``'|'``          vline marker
    ``'_'``          hline marker
    =============    ===============================

基本线型:

    =============    ===============================
    character        description
    =============    ===============================
    ``'-'``          solid line style 实线
    ``'--'``         dashed line style 虚线
    ``'-.'``         dash-dot line style 点画线
    ``':'``          dotted line style 点线
    =============    ===============================

"""

#了解后,就可以通过改变上面代码的参数来产生更多的不同的曲线
plt.plot(x, c, 'b|-')

"""3.matplotlib中绘图的默认设置


"""

from pylab import *
import numpy as np
import matplotlib.pylab as plt

# 创建一个8*6点(point)的图,并设置分辨率为80
figure(figsize=(8, 6), dpi=80)

# 创建一个新的1*1的子图,接下来的图样绘制在其中的第一块中
subplot(1, 1, 1)

# 得到坐标点(x,y)坐标
X = np.linspace(-np.pi, np.pi, 256, endpoint=True)
C, S = np.cos(X), np.sin(X)

# 绘制余弦曲线,使用蓝色的、连续的、宽度为2.5的线条
plot(X, C, color='blue', linewidth=2.5, linestyle='-')

# 绘制正弦曲线,使用绿色的、连续的、宽度为2.0的线条
plot(X, S, color='green', linewidth=2.0, linestyle='-')

# 设置横轴的上下限
xlim(-4.0, 4.0)

# 设置横轴记号
xticks(np.linspace(-4, 4, 9, endpoint=True), fontproperties='Times New Roman', size=20)

# 设置纵轴记号
yticks(np.linspace(-1, 1, 5, endpoint=True))

#设置横纵坐标的名称以及对应字体格式
font = {'family' : 'Times New Roman',
'weight' : 'normal',
'size'   : 20,
}

# 设置横轴标签
plt.xlabel('X axis', font)

# 设置纵轴标签
plt.ylabel('Y axis', font)

# 设置图像标题
plt.title('Demo Figure', font)

# 以分辨率72来保存图片
savefig('demo.png', dpi=72)

# 在屏幕上显示
show()

"""4.设置上下限

其他设置与上面代码一致,区别就是设置界限,主要目的是美观
"""

from pylab import *
import numpy as np

# 得到坐标点(x,y)坐标
X = np.linspace(-np.pi, np.pi, 256, endpoint=True)
C, S = np.cos(X), np.sin(X)

x_min, x_max = X.min(), X.max()
c_min, c_max = C.min(), C.max()
s_min, s_max = S.min(), C.max()
y_min, y_max = min(c_min, s_min), max(c_max, s_max)

# 设置横纵坐标上下界的偏移量,这样能够完整的显示图像且最美观
dx = (x_max - x_min) * 0.2
dy = (y_max - y_min) * 0.2

# 设置上下限 保证四面的空缺量是一样的
xlim(x_min - dx, x_max + dx)
ylim(y_min - dy, y_max + dy)

# 绘制余弦曲线,使用蓝色的、连续的、宽度为2.5的线条
plot(X, C, color='blue', linewidth=2.5, linestyle='-')

# 绘制正弦曲线,使用绿色的、连续的、宽度为2.0的线条
plot(X, S, color='green', linewidth=2.0, linestyle='-')

show()

"""5.设置横纵坐标上需要表示的值

有多种表示方法

第一种是3中设置的,用linspace来表示

第二种是表示普通数字,只需要一个[]中填入需要表示的数字即可

第三种是表示特殊符号或函数,这时需要两个[]来表示,
"""

from pylab import *
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
c, s = np.cos(x), np.sin(x)

xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
       [r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$'])  #表示特殊公式或函数时,前面要加\,数字不用,直接在符号后面加上数字即可

yticks([-1, 0, +1],
       [r'$-1$', r'$0$', r'$+1$'])

plt.plot(x, c)
plt.plot(x, s)

show()

"""6.选择坐标轴

一张图有四条边线,正常图片都是选择左边作为y轴,下面作为x轴

为了不显示别的边框,使用ax.spines[]选定边框,使用set_color()将选定的边框的颜色设为 none

ax.xaixs为x轴,set_ticks_position()用于从上下左右(top/bottom/left/right)四条边线中选择一个作为x轴,y轴同理


使用set_position()设置边框位置:取0时的位置。位置的所有属性包括:outward、axes、data
"""

from pylab import *
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
c, s = np.cos(x), np.sin(x)

plt.plot(x, c)
plt.plot(x, s)

# 设置坐标轴gca(),获取坐标轴信息
ax = gca()

'''
使用ax.spines[]选定边框,使用set_color()将选定的边框的颜色设为 none
'''
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')

'''
移动坐标轴,将bottom即x坐标轴移动到y=0的位置

'''
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data', 0))

'''
将left 即y坐标轴设置到x=0的位置
'''
ax.yaxis.set_ticks_position('left')  # 选定y轴
ax.spines['left'].set_position(('data', 0))

plt.show()

"""7.添加图示

具体是在plot中加入label数据来定义每条曲线具体的图示

用legend来选择显示图示的位置
"""

from pylab import *
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
c, s = np.cos(x), np.sin(x)

plt.plot(x, c, label='cosine')
plt.plot(x, s, label='sine')

legend(loc='upper left')

show()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值