Python数据分析之matplotlib2D绘制折线图

Matplotlib文档链接:https://matplotlib.org/api/pyplot_summary.html

Matplotlib中文文档:https://www.matplotlib.org.cn/

实例参考:https://www.data-blogger.com/2017/11/15/python-matplotlib-pyplot-a-perfect-combination/

对于Python来说,Matplotlib是最著名的绘图库,它主要用于二维绘图,当然它也可以进行简单的三维绘图(基于spyder)。

一: 各参数详解:

 

 

功能描述
acorr绘制x的自相关。
angle_spectrum绘制角度谱图。
annotate用文本文本注释点xy
arrow向轴添加箭头。
autoscale将轴视图自动缩放到数据(切换)。
axes将轴添加到当前图形并使其成为当前轴。
axhline在轴上添加水平线。
axhspan在轴上添加水平跨度(矩形)。
axis获取或设置某些轴属性的便捷方法。
axvline在轴上添加垂直线。
axvspan在轴上添加垂直跨度(矩形)。
bar制作条形图。
barbs绘制倒钩的二维场。
barh制作水平条形图。
box在当前轴上打开或关闭轴框。
boxplot制作一个盒子和胡须图。
broken_barh绘制一个水平的矩形序列。
cla清除当前轴。
clabel标记等高线图。
clf清除当前数字。
clim设置当前图像的颜色限制。
close关闭一个数字窗口。
cohere绘制xy之间的一致性。
colorbar将颜色条添加到绘图中。
contour绘制轮廓。
contourf绘制轮廓。
csd绘制交叉谱密度。
delaxes从图中移除Axes 斧头(默认为当前轴)。
draw重绘当前数字。
errorbar将y与x绘制为带有附加错误栏的行和/或标记。
eventplot在给定位置绘制相同的平行线。
figimage将未重采样的图像添加到图中。
figlegend在图上放置一个图例。
fignum_exists返回是否存在具有给定id的数字。
figtext添加文字到图。
figure创建一个新的数字。
fill绘制填充多边形。
fill_between在两条水平曲线之间填充区域。
fill_betweenx在两条垂直曲线之间填充区域。
findobj查找艺术家对象。
gca获取与Axes给定关键字args匹配的当前数字的当前实例,或创建一个实例。
gcf获取当前数字。
gci获得当前可着色的艺术家。
get_figlabels返回现有图形标签的列表。
get_fignums返回现有图号的列表。
grid配置网格线。
hexbin制作六边形分箱图。
hist绘制直方图。
hist2d制作2D直方图。
hlines在每个y处绘制从xminxmax的水平线。
imread将文件中的图像读入数组。
imsave将数组保存为图像文件。
imshow显示图像,即
install_repl_displayhook安装一个repl显示挂钩,以便在将控件返回到repl时自动重绘任何过时的图形。
ioff关闭交互模式。
ion打开交互模式。
isinteractive返回交互模式的状态。
legend在轴上放置图例。
locator_params主要滴答定位器的控制行为。
loglog在x轴和y轴上绘制具有对数缩放的绘图。
magnitude_spectrum绘制幅度谱。
margins设置或检索自动缩放边距。
matshow在新的图形窗口中将数组显示为矩阵。
minorticks_off从轴上移除次要刻度。
minorticks_on在轴上显示次要刻度。
pause暂停间隔秒。
pcolor使用非常规矩形网格创建伪彩色图。
pcolormesh使用非常规矩形网格创建伪彩色图。
phase_spectrum绘制相位谱。
pie绘制饼图。
plot绘制y与x作为线和/或标记。
plot_date绘制包含日期的数据。
plotfile将数据绘制在文件中。
polar做一个极地情节。
psd绘制功率谱密度。
quiver绘制箭头的2D场。
quiverkey将一个键添加到箭袋图中。
rc设置当前的rc参数。
rc_context返回上下文管理器以管理rc设置。
rcdefaults从Matplotlib的内部默认样式恢复rc参数。
rgrids获取或设置当前极坐标图上的径向网格线。
savefig保存当前数字。
sca将当前Axes实例设置为ax
scatteryx的散点图,具有不同的标记大小和/或颜色。
sci设置当前图像。
semilogx在x轴上绘制带对数刻度的绘图。
semilogy在y轴上绘制具有对数缩放的图。
set_cmap设置默认色彩映射。
setp在艺术家对象上设置属性。
show显示一个数字。
specgram绘制频谱图。
spy绘制2D数组的稀疏模式。
stackplot绘制堆积区域图。
stem创建一个词干图。
step制作一个步骤图。
streamplot绘制矢量流的流线型。
subplot在当前图中添加子图。
subplot2grid在常规网格内的特定位置创建轴。
subplot_tool启动图的子图工具窗口。
subplots创建一个图形和一组子图。
subplots_adjust调整子图布局。
suptitle为图中添加居中标题。
switch_backend关闭所有打开的数字并设置Matplotlib后端。
table添加一个表到Axes
text向轴添加文本。
thetagrids获取或设置当前极坐标图上的θ网格线。
tick_params更改刻度,刻度标签和网格线的外观。
ticklabel_format更改ScalarFormatter线性轴的默认使用。
tight_layout自动调整子图参数以指定填充。
title设置轴的标题。
tricontour在非结构化三角形网格上绘制轮廓。
tricontourf在非结构化三角形网格上绘制轮廓。
tripcolor创建非结构化三角形网格的伪彩色图。
triplot绘制非结构化三角形网格作为线条和/或标记。
twinx制作并返回共享x轴的第二轴。
twiny制作并返回共享y轴的第二个轴。
uninstall_repl_displayhook卸载matplotlib显示挂钩。
violinplot制作小提琴情节。
vlines绘制垂直线。
xcorr绘制xy之间的互相关。
xkcd打开xkcd草图样式绘图模式。
xlabel设置x轴的标签。
xlim获取或设置当前轴的x限制。
xscale设置x轴刻度。
xticks获取或设置当前刻度线位置和x轴标签。
ylabel设置y轴的标签。
ylim获取或设置当前轴的y限制。
yscale设置y轴刻度。
yticks获取或设置y轴的当前刻度位置和标签。

注:经翻译得来,中文解释有不同

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轴名称及字体大小

 

 

三:参数对应:

常用color

color大全见文末(颜色-文字对照图):

wwhite
bblue
ggreen
rred
ccyan
mmagenta
yyellow
kblack

 

 

 

 

 

 

 

 

 Marker常见参数

所有marker官网链接。 

线的color大全

 

 常用参数介绍:

  1. lable:设定坐标线的标签, e.g.ax1.plot(x1, y1, label='x的label')
  2. title:设定标题。e.g. plt.title('title_name')
  3. y :纵坐标。
  4. x :默认为[0, 1, ... , N-1],可手动设定。
  5. data:是:一个自带坐标标签(lable)的数据。如果指定,x坐标y坐标将会显示数据源标签名称;
  6. color:设定线的颜色;
  7. marker:设定节点的样式;
  8. alpha设定图的透明度,取值范围是[0,1]。
  9. plt.plot(data) 等价于 plt.plot(data, 'k-') ,等价于 plt.plot(y=data, kind='line', color='k', linestyle='line'),表示k黑色、o圆节点、- 连续连接线(连接2个O形点);
  10. plt.plot()如果没有连接节点的linestyle参数,结果将为散点图。

**kwargs参数部分

  1. ls 或者 linestyle:设定折线的格式,[文字表述版为‘ solid’, 'dashed', 'dashdot', 'dotted'],符号表述版[ '-', '--', '-.', ':'];
  2. lw 或者 linewidth:设定折线的宽度,
  3. drawstyle:指定画图的格式,比如drawstyle='steps-post',即阶梯图线;
  4. ms 或者markersize:设定大小;
  5. mec 或者markeredgecolor:设定边框的颜色;
  6. mew 或者markeredgewidth:设定边框粗细的值;
  7. mfc 或者markerfacecolor:设定填充的颜色;
  8. ax1.set_xlable:设定ax1(子图)x坐标的名称
  9. ax1.set_ylable设定ax1(子图)y坐标的名称

 参考实例:

实例1:
# 使用matplotlib绘制折线图
import matplotlib.pyplot as plt
import numpy as np


# 在一个图形中创建两条线
fig = plt.figure(figsize=(10,6))
ax1 =fig.add_subplot(1,1,1)

ax1.set_xlabel('number')
ax1.set_ylabel('rates')
ax1.set_title("Line chart")

ax1.plot([13, 14, 15, 16], [0.2, 0.8, 0.5, 0.4])
ax1.plot([13, 14, 15, 16], [0.3, 0.4, 0.7, 0.8])

#另一种设置X/Y坐标数值,的方法设置每个坐标轴的取值范围(x轴取值,y轴取值)
#plt.axis([0,1100,0,1100000])

plt.savefig('line_chart.jpg') plt.show()


实例2:
import numpy as np
import matplotlib.pyplot as plt

ax = [23,26,28,31,32,33]      #随便创建了一个数据
ay = [3.0,3.5,4.0,3.0,3.5,4.0]
plt.plot(ax,ay,color='r',linewidth=1,label=u'1')#color指定线条颜色,labeL标签内容
plt.legend(loc=2)#标签展示位置,数字代表标签具位置
plt.xlabel(u'X/℃')
plt.ylabel(u'Y/')
plt.title(u'2019/06/07')
# plt.ylim(0,8)#Y轴标签范围为0-10
# 设置每个坐标轴的取值范围(x轴取值,y轴取值)
plt.axis([0,36,0,8])
plt.show()

 

 

转载于:https://www.cnblogs.com/moying-wq/p/10988088.html