教你利用python的matplotlib(pyplot)绘制折线图和柱状图
作者:天泽28 时间:2022-02-25 17:30:49
前言
今天帮师兄赶在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
标签:pyplot,折线图,柱状图
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Go素数筛选分析详解
2023-07-22 11:50:02
![](https://img.aspxhome.com/file/2023/3/90493_0s.png)
Python&Matlab实现樱花的绘制
2023-11-04 05:07:16
![](https://img.aspxhome.com/file/2023/2/63902_0s.gif)
用Dreamweaver设计实现网页过渡转换功能
2008-09-04 10:09:00
![](https://img.aspxhome.com/file/uploadpic/20072/200723113553118.jpg)
python使用PIL剪切和拼接图片
2022-06-26 07:41:55
![](https://img.aspxhome.com/file/2023/4/93604_0s.png)
python正则表达式去除两个特殊字符间的内容方法
2023-08-24 16:22:10
Python清空文件并替换内容的实例
2023-03-22 04:09:43
兼容主流浏览器,纯CSS下拉菜单
2010-09-05 20:30:00
透明度设置
2009-12-12 18:51:00
Codeigniter控制器controller继承问题实例分析
2023-11-23 04:15:31
对Python获取屏幕截图的4种方法详解
2023-11-19 09:45:41
Python删除字符串中字符的四种方法示例代码
2021-09-25 08:23:25
用SQL统计SQLServe表存储空间大小的代码
2012-06-06 19:52:22
Python下载ts文件视频且合并的操作方法
2021-11-15 15:40:19
![](https://img.aspxhome.com/file/2023/5/76985_0s.jpg)
Jsp生成页面验证码的方法[附代码]
2023-06-25 07:46:42
javascript过滤数组重复元素的实现方法
2023-09-08 00:41:21
基于python写个国庆假期倒计时程序
2022-06-04 20:35:32
![](https://img.aspxhome.com/file/2023/2/66802_0s.gif)
Django框架模型简单介绍与使用分析
2021-04-06 02:59:19
![](https://img.aspxhome.com/file/2023/6/92506_0s.png)
详述如何提高MySQL中数据装载效率
2009-10-26 10:27:00
python tkinter界面居中显示的方法
2023-10-14 11:16:18
Python报错:对象不存在此属性的解决
2023-05-30 20:12:56
![](https://img.aspxhome.com/file/2023/4/75254_0s.png)