教你利用python的matplotlib(pyplot)绘制折线图和柱状图
作者:天泽28 发布时间:2022-02-25 17:30:49
标签:pyplot,折线图,柱状图
前言
今天帮师兄赶在deadline之前画论文的图,现学现卖很是刺激,现把使用matplotlib的子库pyplot画折线图和柱状图的代码记录分享一下,方便大家参考,个人感觉pyplot真的蛮方便的,非常值得使用。
先看下官方对pyplot的描述:“Provides a MATLAB-like plotting framework.”。对,就是一个类似matlab的画图框架。就不多多说了,直接上代码吧:
一、折线图
代码:
import matplotlib.pyplot as plt
#折线图
x = [5,7,11,17,19,25]#点的横坐标
k1 = [0.8222,0.918,0.9344,0.9262,0.9371,0.9353]#线1的纵坐标
k2 = [0.8988,0.9334,0.9435,0.9407,0.9453,0.9453]#线2的纵坐标
plt.plot(x,k1,'s-',color = 'r',label="ATT-RLSTM")#s-:方形
plt.plot(x,k2,'o-',color = 'g',label="CNN-RLSTM")#o-:圆形
plt.xlabel("region length")#横坐标名字
plt.ylabel("accuracy")#纵坐标名字
plt.legend(loc = "best")#图例
plt.show()
运行结果:
关于上述代码参数的一点解释:
plt.legend(loc=”best”) 中loc=”best”意思是自动选择放图例的合适位置,上图就是放在了右下角,这个参数还有其他的设置如下:
二、柱状图
多个柱状图用颜色区分
代码如下:
#柱状图
import numpy as np
import matplotlib.pyplot as plt
ATT_LSTM = [0.8892,0.861,0.9243]
MATT_CNN = [0.8966,0.8556,0.9316]
ATT_RLSTM = [0.8867,0.8543,0.9344]
CNN_RLSTM = [0.9016,0.8636,0.9435]
#x = ['REST','LAPT','AUTO']
x = np.arange(3) #总共有几组,就设置成几,我们这里有三组,所以设置为3
total_width, n = 0.8, 4 # 有多少个类型,只需更改n即可,比如这里我们对比了四个,那么就把n设成4
width = total_width / n
x = x - (total_width - width) / 2
plt.bar(x, ATT_LSTM, color = "r",width=width,label='ATT-LSTM ')
plt.bar(x + width, MATT_CNN, color = "y",width=width,label='MATT-CNN')
plt.bar(x + 2 * width, ATT_RLSTM , color = "c",width=width,label='ATT-RLSTM')
plt.bar(x + 3 * width, CNN_RLSTM , color = "g",width=width,label='CNN-RLSTM')
plt.xlabel("dataset")
plt.ylabel("accuracy")
plt.legend(loc = "best")
plt.xticks([0,1,2],['REST','LAPT','AUTO'])
my_y_ticks = np.arange(0.8, 0.95, 0.02)
plt.ylim((0.8, 0.95))
plt.yticks(my_y_ticks)
plt.show()
结果如下:
2. 多个柱状图用填充图形(\,/,*,o等)
代码如下:
#柱状图
import numpy as np
import matplotlib.pyplot as plt
ATT_LSTM = [0.8892,0.861,0.9243]
MATT_CNN = [0.8966,0.8556,0.9316]
ATT_RLSTM = [0.8867,0.8543,0.9344]
CNN_RLSTM = [0.9016,0.8636,0.9435]
#x = ['REST','LAPT','AUTO']
x = np.arange(3)
total_width, n = 0.8, 4 # 有多少个类型,只需更改n即可
width = total_width / n
x = x - (total_width - width) / 2
plt.bar(x, ATT_LSTM, color = "w",edgecolor = "k",width=width,hatch = "/",label='ATT-LSTM ')#edgecolor柱状边框颜色,hatch填充的内容
plt.bar(x + width, MATT_CNN, color = "w",edgecolor = "k",width=width, hatch = "+",label='MATT-CNN')
plt.bar(x + 2 * width, ATT_RLSTM , color = "w",edgecolor = "k",width=width, hatch = "*",label='ATT-RLSTM')
plt.bar(x + 3 * width, CNN_RLSTM , color = "w",edgecolor = "k",width=width, hatch = "\\",label='CNN-RLSTM')
plt.xlabel("dataset")
plt.ylabel("accuracy")
plt.legend(loc = "best")
plt.xticks([0,1,2],['REST','LAPT','AUTO'])
my_y_ticks = np.arange(0.8, 0.95, 0.02)
plt.ylim((0.8, 0.95))
plt.yticks(my_y_ticks)
plt.show()
运行结果为:
这就是画折线图和柱状图的示例。
来源:https://blog.csdn.net/u012328159/article/details/79240652


猜你喜欢
- 1.虚拟环境它是一个虚拟化的概念,从电脑独立开辟出来的环境。通俗的来讲,虚拟环境就是借助虚拟机来把一部分内容独立出来,我们把这部分独立出来的
- java通过mysql的加解密函数实现敏感字段存储1.AES加解密工具类:public class AESUtils {public sta
- 题目:给一个列表,找元素在此列表中的位置,如果找到,返回此元素的下标,如果找不到,那就直接返回空解决方法1:# _*_ coding:UTF
- 报错信息粉丝群里面一个小伙伴想用pip安装库的时候出现的提示报错(当时他心里瞬间凉了一大截,跑来找我求助,然后顺利帮助他解决了,顺便记录一下
- MySQL是一个非常流行的小型关 系型数据库管理系统,2008年1月16号被Sun公司收购。目前MySQL被广泛地应用在Internet上的
- <%@ language=vbscript codepage=65001%> <
- 在之前的一篇文章我们介绍了《如何向PHP数组中头部和尾部添加元素》既然有添加元素,那么就有删除元素,今天这篇文章详细介绍如何删除数组中的头部
- 代码实现:<!DOCTYPE html><html lang="en"><head>
- 概要本文分步介绍了如何在运行 SQL Server 的计算机之间移动 Microsoft SQL Server 用户数据库和大多数常见的 S
- 我就废话不多说了,直接上代码吧!import tensorflow as tf w1 = tf.Variable([[1,2]]) w2 =
- SQL Server数据库快捷键:书签:清除所有书签。 CTRL-SHIFT-F2书签:插入或删除书签(切换)。 CTRL+F2书签:移动到
- 前言使用 pymongo 进行 group by 操作有两种基本方式,他们都是 mongodb 的原生命令,于 Collection 对象上
- 1、首先,界面上有个按钮触发操作:<button type="button" class="layui-
- 本篇文章通过调用opencv里的函数简单的实现了对图像里特定颜色提取与定位,以此为基础,我们可以实现对特定颜色物体的前景分割与定位,或者特定
- 方式一import matplotlib.pyplot as pltimport numpy as npfrom scipy.stats i
- 前言本文主要介绍了关于Python中TCP socket的写法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。一、 服务器
- 目录它有什么作用?安装方法简介它有什么作用?它提供了一种将包括Python对象在内的结构化数据打包为JSON可序列化格式的机制。通过向相应的
- 面试题:索引是什么?索引的优点?索引的缺点?在建立索引的时候都有哪些需要考虑的因素呢?为数据表建立索引的原则有哪些?什么是索引覆盖?非聚簇索
- 搜了全网都是各种坑,没能解决我的问题。最后自己琢磨出来了。安装好以后,会弹出临时密码 ,copy住。如果手点快了,在通知栏还有一次机会,通知
- 实体有五种预定义的XML实体,HTML编码者应该熟悉。XML文档中的字符&、<、>、"和'被分别表示为