不论是数据挖掘还是数据建模,都免不了数据可视化的问题。对于python来说,matplotlib是最著名的绘图库,它主要用于二维绘图,当然它也可以进行简单的三维绘图(基于spyder)。
- 模块引用
1
|
import matplotlib.pyplot as plt #引用画图库中的pyplot模块 |
-折线条图
语法
1
2
3
|
import matplotlib.pyplot as plt data = [ 1 , 2 , 3 , 4 , 5 , 4 , 2 , 4 , 6 , 7 ] #随便创建了一个数据 plt.plot(data) #引用画图库中的pyplot模块 |
plot参数
基本折线图不能满足,这时就需plot的参数来进行调整
美化示例:
1
2
3
4
5
6
7
8
9
10
11
12
|
import matplotlib.pyplot as plt yy = [ 1 , 2 , 3 , 4 , 5 , 4 , 2 , 4 , 6 , 7 ] #随便创建了一个数据 xx = [ 3 , 5 , 4 , 1 , 2 , 3 , 4 , 5 , 6 , 3 ] zz = [ 2 , 3 , 4 , 6 , 4 , 3 , 2 , 4 , 5 , 6 ] plt.plot(yy,color = 'r' ,linewidth = 5 ,linestyle = ':' ,label = '数据一' ) #color指定线条颜色,label标签内容 plt.plot(xx,color = 'g' ,linewidth = 2 ,linestyle = '--' ,label = '数据二' ) #linewidth指定线条粗细 plt.plot(zz,color = 'b' ,linewidth = 0.5 ,linestyle = '-' ,label = '数据三' ) #linestyle指定线形为点 plt.legend(loc = 2 ) #标签展示位置,数字代表标签具位置 plt.xlabel( 'x轴称' ) plt.ylabel( 'y轴的名称' ) plt.title( '2018.7.30折线图示例' ) plt.ylim( 0 , 10 ) #y轴标签范围为0-10 |
plt常用参数有:
属性 | 描述 |
---|---|
xlabel | 设置当前轴的x轴标签:plt.xlabel(‘x标签名') |
ylabel | 设置当前轴的y轴标签:plt.xlabel(‘y标签名') |
title | 设置当前轴的标题:plt.title(‘图例标题名') |
ylim | 获取或设置当前轴的y限制,plt.ylim(0,6)y轴范围0-6;xlim同理懒的写了 |
legend | 在轴上放置图例:legend()无参数自动识别,也可用数字指定位置1,2,3,4试着来 |
show | 展示所画图,spyder一般直接运行不需要此步 |
grid | plt.grid()打开或关闭轴网格,网格一样能设置颜色线型 |
rcparams[‘font.sans-serif'] | 图表中文字体:plt.rcparams[‘font.sans-serif']=[‘simhei']微软雅黑;或=[‘microsoft yahei']黑体 |
rcparams[‘axes.unicode_minus'] | 图表轴负数符号显示问题:plt.rcparams[‘axes.unicode_minus'] = false |
plt常画图例有:
属性 | 描述 |
---|---|
plot | 绘制y与x作为线和/或标记。 |
plot_date | 绘制包含日期的数据。 |
acorr | 绘制x的自相关。 |
axhline | 在轴上添加一条水平线。 |
bar | 制作条形图。 |
barh | 制作一个水平条形图。 |
hist | 绘制直方图 |
hist2d | 制作2d直方图。 |
scatter | y与x的散点图,具有不同的标记大小和/或颜色。 |
stackplot | 绘制堆积区域图。 |
plot常用参数有:
属性 | 描述 |
---|---|
color | 字体颜色:color=‘r';b、g、r、c、m、y、k、w 或者blue、green、red、cyan、magenta、yellow、black、whtite 或十六进制字符串('#008000') |
linewidth | 线条粗细:linewidth=1.=5.=0.3 |
linestyle | 线条形状:linestyle='–'(虚线);linestyle=':'(点线);linestyle='-.'(短线加点); |
label | 数据标签内容:label=‘数据一',数据标签展示位置需另说明plt.legend(loc=1)数字为标签位置 |
实际应用案例
因案例涉及机密数据,只展示数据可视化的过程及结果,先放结果输出的样式
1
2
3
4
5
6
|
import pandas as pd #导入pandas库 import pymysql as mysql #导入mysql库 import matplotlib.pyplot as plt #导入数据可视化库 import numpy as np #导入numpy库 plt.rcparams[ 'font.sans-serif' ] = [ 'microsoft yahei' ] #指定文字字体格式为微软雅黑字段 plt.rcparams[ 'axes.unicode_minus' ] = false |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
connection = mysql.connect(host = '数据库ip' ,port = '端口' ,user = '用户账号' ,password = '登录密码' ,db = '连接的库名' ,charset = 'utf8' ) #设置连接数据库的参数 select = connection.cursor() #创建游标 select.execute( "select * from tabel" ) #写入sql查询语句 zd = list ((pd.dataframe( list (select.description)))[ 0 ]) #获取查询结果的列名 sqldata = select.fetchall() #获取查询结果 select.close #关闭查询 connection.close #关闭数据库接接 data1 = pd.dataframe( list (sqldata)) #将数据转化成df类型 data1.columns = zd #将列名重置为查询结果列名 plt.figure(figsize = ( 10 , 5 )) #设置图表大小,长10,宽5 plt.plot(data1[ '机器a拟合度' ],label = '机器a准确率' ,color = '#aa0000' ,linestyle = '-' ,linewidth = 3 )#画机器a准确率的线条 plt.plot(data1[ '人工a拟合度' ],label = '人工a准确率' ,color = '#aa0000' ,linestyle = ':' ,linewidth = 3 )#画人工a准确率的线条 plt.plot(data1[ '机器b拟合度' ],label = '机器b准确率' ,color = '#666666' ,linestyle = '-' ,linewidth = 3 )#画机器b准确率的线条 plt.plot(data1[ '人工b拟合度' ],label = '人工b准确率' ,color = '#666666' ,linestyle = ':' ,linewidth = 3 )#画人工b准确率的线条 plt.plot([ 0 , 7 ],[ 0.9 , 0.9 ],color = 'g' ,linestyle = '-.' ,linewidth = 1 ) #画一根绿色的辅助线,x轴从0到7,y轴为0.9 plt.xticks(np.arange( 8 ),( 'wk23' , 'wk24' , 'wk25' , 'wk26' , 'wk27' , 'wk28' , 'wk29' , 'wk30' )) #更改图表x标签为制定内容 plt.legend(loc = 4 ) #将图例说明放在图表的右下角 plt.title( '人机绝对准确率6.4-7.29' ,fontsize = 20 ) #命名图表名称,设置字体大小 plt.xlabel( '周' ,fontsize = 20 ) #设置x轴名称及字体大小 plt.ylabel( '准确率%' ,fontsize = 20 ) #设置y轴名称及字体大小 |
总结
到此这篇关于python数据可视化之matplotlib.pyplot基础以及折线图的文章就介绍到这了,更多相关python matplotlib.pyplot折线图内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/Arwen_H/article/details/81282716