Python绘图库学习——matplotlib

首先介绍一下这个库吧,它是一个强大的python绘图工具包,之前一直是copy代码(拾人牙慧,新学的词),自己没有真正系统学习过。现在因为想要自己绘图,被迫学习了一下,发现so easy.

附上matplotlib的官方文档:https://matplotlib.org/stable/index.html

附上W3school的入门教程:https://www.w3schools.com/python/matplotlib_intro.asp

W3school只能帮你入门(其实这就够了),具体想要实现一些细节的东西可以查看官方文档or百度。

下面附上自己绘制N2pc的代码

def plot_n2pc(data1, data2, title):
    '''
    :param data1: data1.shape = (1,301) 是PO7电极的EEG
    :param data2: data1.shape = (1,301) 是PO8电极的EEG
    :return:
    '''
    x = np.linspace(-0.2, 1, 301)
    if title == "right target":
        # PO7-P08 对侧-同侧
        data_n2pc = data1 - data2
    elif title == "left target":
        # P08-PO7 对侧-同侧
        data_n2pc = data2 - data1
    plt.plot(x, data1, linestyle='dotted', label='P07')
    plt.plot(x, data2, linestyle='dashdot', label='PO8')
    plt.plot(x, data_n2pc, label='N2pc')
    # 画出一条网格线
    plt.axhline(0, linestyle='--', color='black', linewidth='0.5')
    plt.axvline(0, linestyle='--', color='black', linewidth='0.5')
    # 设置标签
    plt.title(title)
    plt.xlabel('Time(ms)')
    plt.ylabel('Amplitude(uv)')
    # 设置刻度的范围
    plt.xlim(-0.2, 1)
    plt.ylim(-10e-6, 10e-6)
    plt.yticks(ticks=np.linspace(-10e-6, 10e-6, 9), labels=np.linspace(-10, 10, 9))
    # 设置图例的标签
    plt.legend()
    plt.show()

这里涉及到几个有难度的绘制点

  1. 如何只画出特定条网格线

一般情况下,如果想要绘制网格线可以采用plt.grid()的方法,但是如果想要实现只画一条的网格线,则使用

# 水平线,需要传入y的具体值
plt.axhline(y, linestyle='--', color='black', linewidth='0.5')
# 垂直线,需要传入x的具体值
plt.axvline(x, linestyle='--', color='black', linewidth='0.5')
  1. 设置图例标签

plt.legend()# plt.plot()label属性这边可以设置标签的名字或者直接在里面添加
plt.legend(handles=[l1, l2], labels=['up', 'down'])

推荐知乎一篇文章:https://zhuanlan.zhihu.com/p/41781440

  1. 设置x轴和y轴刻度

# 这两个可以设置在x,y轴呈现的刻度范围
plt.xlim(-0.2, 1)
plt.ylim(-10e-6, 10e-6)

改变x,y轴坐标的刻度

plt.yticks(locs,[labels],*kwarges)
plt.xticks(locs,[labels],*kwarges)

locs是坐标的具体位置,labels是你想要替换的标签值,还有别的其他参数可以进行设置

如下图对比,我使用yticks前的y轴是这样的,使用后的y轴是上面的图这样的

参考:https://blog.csdn.net/Poul_henry/article/details/82590392

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值