不论是数据挖掘还是数据建模,都免不了数据可视化的问题。对于python来说,matplotlib是最著名的绘图库,它主要用于二维绘图,当然它也可以进行简单的三维绘图(基于spyder)。

– 模块引用

import matplotlib.pyplot as plt #引用画图库中的pyplot模块

-折线条图

语法

import matplotlib.pyplot as plt
data=[1,2,3,4,5,4,2,4,6,7] #随便创建了一个数据
plt.plot(data) #引用画图库中的pyplot模块

plot参数

基本折线图不能满足,这时就需plot的参数来进行调整

美化示例:

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)数字为标签位置

实际应用案例

因案例涉及机密数据,只展示数据可视化的过程及结果,先放结果输出的样式

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
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折线图内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!