导图社区 Matplotlib
Python可视化大学生知识框架图,包括:事件与保存、plt.plot的属性参数、图像的样式设置、图表类型、 图表基本属性设置、导入及初始设置。
编辑于2022-10-09 17:02:03 山东省Matplotlib
事件与保存
事件响应与处理
常用事件
button_press_event(鼠标按下时触发的事件)
button_release_event(鼠标抬起时触发的事件)
key_press_event(键盘上某个键按下时触发的事件)
key_release_event键盘上某个键抬起时触发的事件
保存绘图结果
fname
dpi
facecolor、edgecolor
format
transparent
bbox_extra_artists
bbox_inches
pad_inches
plt.plot的属性参数
x, y,data
x轴的数据/对象,y轴的数据/对象,绘图数据
kind
line/bar/barh/kde/hist...折线图,柱形图(横),和密度图,直方图等
ax
ax=axes[0/1..]子图位置
figsize
图的宽高
title
图标题
legend
显示图例(布尔值)
grid
显示网格(布尔值)
alpha
透明图0-1
use_index
将索引作为刻度标签,布尔值,默认True; 出现不显示刻度标签的情况可能是主刻度数不契合索引数
style
style传入的参数,可以包含多种设置如color, marker, linestyle .比如style='ko--',即color= 'k', marker= 'o', linesytle='--'
xticks / ysticks
轴刻度显示范围
xlim / ylim
x轴,y轴的边界
rot
轴标签的旋转角度
fontsize
字体大小
subplots
拆分成子图(布尔值)
color colormap
color =单—颜色或列表(——对应); colormap颜色板,图形自动上色
table
是否显示外嵌图表(布尔值)
secondary _y
当图像需要呈现不同大小层次的数据时, 设置y轴副坐标(布尔值)是否显示
label
设置图形的图例标签内容,只对含单个数据序列的图形有效
图像的样式设置
线的样式 linestyle
实线- 虚线-- 线点-· 点线:
点的样式 marker
'∵'点 'o'实心圆 'D'钻石状 '*'五角形 '×'叉状 ……
颜色color
常用:red - r, green - g,black - k, blue - b, yellow - y
若以列表形式传入,指定对应图形颜色
色板colormap
图像自动匹配色板中的颜色: Blues, Reds, YlGn,BuGn...
注释text
plt.text(x,y, text)设置注释的x y轴位置,传入text注释文字
风格 style
style='ko--',即color='k', marker='o',linesytle='--'
图表类型
柱状图bar
plt.bar(left,height, width,bottom, facecolor, edgecolor, label)
plt.plot(kind='bar' /'barh')
参数kind=bar 或 barh
参数colormap='Blues_r'
参数stack=True
参数ax=ax1第几个子图
直方图hist
plt.hist0
plt.plot(kind='hist')
参数 bins:直方图箱数 normed:标准化 orientation:直方图方向vertical / horizontal histtype:直方图风格 'bar", 'barstacked', 'step", 'stepfilled 'stacked:是否堆叠
面积图area
plt.plot_area0
plt.plot(kind='area')
填图fill
plt.fill()
plt.fill_between()
饼状图pie
plt.pie()
plt.plot(kind='pie')
参数 explode:指定每部分的偏移量 labels:标签 colors:颜色 autopct:饼图上数据标签显示方式 pctdistance:中心与autopct比例的距离 labeldistance:被饼图标记的直径,默认值 shadow:阴影布尔值 startangle:开始角度 radius:半径 frame:图框 布尔值
散点图scatter
plt.scatter()
参数 marker:散点符号的形状 alpha:散点符号的透明度 linewidths:线宽l edgecolors:散点符号的边线颜色 s:散点符号的大小
df.plot.scatter(x="col_1",y="col_2" , c="col_3")
参数c,color, c=colors散点为彩色 c=某column散点为按某column数值大小的渐变色 参数s,size,可以是某个column
矩阵散点图scatter_matrix
pd.scatter_matrix()通过pandas模块调用,一般不用Seaborn的pairplot可完全替代
极坐标图(雷达图)
创建方式一:调用subplot0创建极坐标子圈(projeotion='polar') .在子圈中绘图 ax=plo.subplot(projection='polar') ax.plot(theta,data) #弧度制theta #弧度分割需要与数据分割—致
折线雷达图:极坐标+折线图+填数据+收尾闭合 1. ax=plt.subplot(projection='polar')#创建极坐标子圈 2. theta=np.concatenate((theta,[theta[0]]) data=np.concatenate(data,[data[0]))#首尾极坐标及数据首尾闭合处理 3. ax.plot(theta, data,**kwargs)#极坐标子图上绘图 4. ax.fill(theta, data,**kwargs)#填图
柱状雷达图:极坐标+柱状图+颜色分区 1. ax=plt.subplot(projection='polar')#创建极坐标子图 2. ax.bar(theta, data, color,**kwargs) #在极坐标子图上绘制柱状图向color传入设定的颜色序列
创建方法二: plt.polar()传入弧度坐标+数据只能创建折线雷达图plt.polar()
箱线图box
plt.boxplot()
plt.plot.box()
图表基本属性设置
图例legend
plt.legend0用于显示图例或作为图表对象ax1的参数: ax1.legend(prop=f'size'=10等})
参数:
图例的位置loc="best/upper right/left right...." best是自适应
图例字体大小fontsize : int or float or { 'xx-small’, ‘x-small’ , 'small’,'medium’ , ‘large'. 'x-large'. ‘xx-large’}
设置图例边框及背景 plt.legend(loc='best',frameon=False)#去掉图例边框 plt.legend(loc='best",edgecolor='blue')#设置图例边框颜色 plt.legend(loc='best',facecolor="blue')#设置图例背景颜色,若无边框,参数无效
图例标题: title= 'xxxx'
多个axes的图例放在一起fig = plt.figure(1) ax1 = plt.subplot(2,1,1) ax2 = plt.subplot(2,1,2) l1, = ax1.plot(x, x*x, 'r) #关键 l2,= ax2.plot(x,x*x, 'b') #注意 plt.legend([11,l2],['first', 'second'], loc = 'upper right')
图名title
图像函数plt.plot)参数名称title
plt.title()
参数loc:图名位置,center, left, right
参数label:传入字符串定义图名
轴标签xlabel/ylabel
plt.xlabel:设置x轴标签
plt.ylabel :设置y轴标签
轴边界lim
图像函数plt.plot()参数: xlim/ylim
传入一个元组,收尾包含
plt.xlim() / plt.xlim()
传入一个元组,收尾包含
轴刻度xticks/yticks
图像函数 plt.plot0参数xticks/yticks
设置刻度范围
plt.xticks / plt.yxticks
第一个位置参数locs,一个序列,作为刻度,可以作为刻度的偏移设置
第二个位置参数, labels,作为刻度对应的显示标签,可省略
参数rotation设置刻度标签的旋转角度
参数size刻度标签的大小
ax.set_xticks / ax.set_yticks
面对对象接口的图像刻度设置
作用是设置某Axe将主刻度放在那里 (主刻度为显式刻度,次刻度为隐式刻度)
ax.set_xticklabels / ax.set_yticklabels
面对对象的图像刻度设置
作用是设置某Axe将主刻度对应的标签
图像大小figsize
figzise传入一个元组,设置图像宽高
网格grid
图像函数plt.plot()参数grid
True or False是否显式网格线
plt.grid()
参数axis: both-xy轴都显式,x-只显式x轴, y-只显示y轴
参数linestyle:网格线风格:--.-. -.. : ...
参数color:颜色
参数linewidth:线宽
参数alpha:透明度
参数which:按刻度显示网格线,both-主次刻度都显示,major-显示主刻度,minor显示次刻度
标注线
横线:plt.axvline(y轴上的值, color="G"... )
竖线: plt.axhline(x轴上的值, color="G", linewidth=0.7...)
导入及初始设置
import matplotlib.pyplot as plt
#设置jupyter notebook 行内直接显示图片 %matplotlib inline
#调整图片大小 plt.rcParams['figure.figsize'] = (12,8)
plt.rcParams['font.sans-serif"]=['SimHei"']#用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False #用来正常显示负号