matplotlib作图

import numpy as np
import matplotlib.pyplot as mp

mp.figure('Figure A', facecolor='gray')
mp.title('FigureB', fontsize=16)

mp.xlabel('X', fontsize=14)
mp.ylabel('Y', fontsize=14)

#设置刻度参数  labelsize设置刻度字体大小
mp.tick_params(labelsize=10)
#设置图表网格线
# -   or solid    粗线
# --  or dashed   虚线
# -.  or dashdot  点虚线
# :  or  dotted   点线
mp.grid(linestyle=':')

#紧凑布局
#mp.tight_layout()

mp.show()

绘制散点图

import numpy as np
import matplotlib.pyplot as mp

n = 300
x = np.random.normal(173, 5, n)   # 身高,标准差,人数
y = np.random.normal(65, 10, n)   #体重

#绘图
mp.figure('Persons', facecolor='lightgray')
mp.title('Persons', fontsize=16)
mp.xlabel('Height', fontsize=14)
mp.ylabel('Weight', fontsize=14)
mp.grid(linestyle=':')

#求标准值
d = (x-173)**2 + (y-65)**2
mp.scatter(x, y, marker='o', s=70,
           label='Persons', c=d, cmap='jet')#jet颜色映射为蓝到红,离标准值越远颜色越红
mp.legend()
mp.show()

在这里插入图片描述

绘制折线图

import numpy as np
import matplotlib.pyplot as mp

x = np.arange(6)  #6个点
y = np.array([23, 62, 36, 42, 9, 12])
mp.plot(x, y)

#绘制水平线与垂直线
mp.vlines(3, 20, 50) #垂直线(画在哪, 最小值, 最大值)
mp.hlines(30, 1, 4)  #水平线(画在哪, 最小值, 最大值)

mp.show()

在这里插入图片描述

绘制正弦曲线

import numpy as np
import matplotlib.pyplot as mp

#绘制一条正弦余弦
x = np.linspace(-np.pi, np.pi, 1000) #-π到π,1000个点
sinx = np.sin(x) #矢量化的sin方法将会返回每个x对应的y

mp.plot(x, sinx)
mp.show()

在这里插入图片描述

绘制一条余弦曲线

import numpy as np
import matplotlib.pyplot as mp

#绘制一条正弦余弦
x = np.linspace(-np.pi, np.pi, 1000) #-π到π,1000个点
sinx = np.sin(x) #矢量化的sin方法将会返回每个x对应的y
cosx = np.cos(x) / 2

#设置坐标轴的范围  第一象限
#mp.xlim(0, np.pi + 0.1) #0-π  (最小值,最大值+0.1为了留白)
#mp.ylim(0, 1.1)

#修改坐标轴刻度
mp.xticks([-np.pi, -np.pi / 2, 0, np.pi / 2, np.pi],
          ['-π', r'$-\frac{\pi}{2}$', '0', r'$\frac{\pi}{2}$', 'π'])
mp.yticks([-1.0, -0.5, 0, 0.5, 1])

#设置坐标轴,移动
#获取当前坐标轴字典
x = mp.gca()
x.spines['top'].set_color('none')
x.spines['right'].set_color('none')
#移动坐标轴的参照类型一般为'data',val:0-参照值
x.spines['left'].set_position(('data', 0))
x.spines['bottom'].set_position(('data', 0))

#绘制特殊点
px = [3/4 * np.pi, 3/4 * np.pi]
py = [np.sin(px[0]), np.cos(px[1]) / 2]
mp.scatter(px, py, marker='o', color='red',
           s=70, label='Points', zorder=3)

#在图上的特殊点添加备注
mp.annotate(
    r'$[\frac{3\pi}{4}, \frac{cos(\frac{3\pi}{4})}]$', #备注中显示的文本内容
    xycoords='data',   #备注目标点所使用的坐标系,data表示数据坐标系
    xy=(3/4 * np.pi, np.cos(px[1]) / 2),         #备注目标点的坐标
    textcoords='offset points',  #备注文本所使用的坐标系,offset points表示参照点的偏移坐标系
    xytext=(-80, -30),      #备注文本的坐标
    fontsize=14,        #备注文本的字体大小
    arrowprps=dict(
        arrowstyle='-|>',
        Connectionstyle='angle3'
    )    #使用字典定义文本指向目标点的箭头样式
)

mp.plot(x, sinx, linestyle='--', alpha=0.8,
        linewidth=2, color='dodgerblue',
        label=r'$y=sin(x)$')
mp.plot(x, cosx, linestyle='-.', alpha=0.8,
        linewidth=2, color='orangered',
        label=r'$y=\frac{1}{2}cos(x)$')

#里面放参数设置图标的位置
mp.legend()
mp.show()

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值