目录
1、matplotlib绘制图形
语法结构:plt.plot(x,y,ls=,lw=,c=,marker=,markersize=,markeredgecolor=,markerfacecolor, label=)
x:X轴上的数值
y:y轴上的数值
ls:折线形式
lw:线条宽度
c:颜色
marker:数据点的形状
maekersize:数据点的大小
markeredgecolor:点的边框颜色
markerfacecolor:点的填充颜色
label:文本标签
1.1 简单图像绘制
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #图像能显示中文
plt.rcParams["axes.unicode_minus"] = False #确保负坐标轴能显示负号
# %matplotlib inline #确保图像能够展示出来
x=[-23,-13,-4,6,10,18,28,35,40]
y=[12,15,16,17,17,18,25,28,38]
plt.plot(x,y,
linewidth=2,
linestyle='--',#线型
color='red',#线的颜色
marker="*",#数据点形式
markersize=10,#数据点大小
markerfacecolor='blue'#数据点颜色
)
#plt.figure(figsize=(5,5),dpi=100,facecolor='white')#figsize画布大小,dpi分辨率,faceclor画布颜色
plt.title('x-y图',color='red')#添加标题
plt.xlabel('$\\frac{1}{4}$量',color='purple')#添加x轴说明,$\\frac{1}{4}$--分数形式
plt.ylabel('Sedimentation(10$^8$t)',color='green')#添加y轴说明,10$^8$t--指数形式
plt.xlim([-25,40])#x轴的范围
plt.ylim([10,40])
plt.xticks([-30,-10,10,30,50],color='blue',rotation=60) #参数x空值X轴的间隔,rotation旋转角度
plt.yticks([10,20,30,40])
plt.grid(True,linestyle='--',color='black')#添加网格
plt.legend(['曲线'],loc='best')#添加图例,loc--可以指定图例的位置,'best'自动选择最优
plt.show()
loc 参数选择说明
0 | 自动选择显示位置 | 5,7 | 右边中间 |
1 | 右上角 | 6 | 左边中间 |
2 | 左上角 | 8 | 下方中间 |
3 | 左下角 | 9 | 上方中间 |
4 | 右下角 | 10 | 图形中间 |
颜色参数说明
b | 蓝色 | r | 红色 |
c | 青色 | y | 黄色 |
g | 绿色 | k | 黑色 |
m | 洋红色 | w | 白色 |
常见图例形式
1.2 子图绘制
子图,即在较大的图形中同时放置一组较小的坐标轴,这些子图可能是画中画、网格图或其他更复杂的布局形式。子图使用subplot函数创建。
plt.subplot(2,2,1)
plt.plot([1,3,5,7],[2,3,5,8],'b*')
plt.subplot(2,2,2)
plt.plot([-23,-13,-4,6],[12,15,16,17],'g^')
plt.subplot(2,2,3)
plt.plot([18,25,28,38],[18,28,35,40],'ro')
plt.subplot(2,2,4)
plt.plot([11,32,35,47],[22,43,55,68],'k')
2、seaborn绘制图形
seaborn是基于Matplotlib的Python数据可视化库,它提供了一个高级界面,用于绘制引人入胜且内容丰富的统计图,其提供的面向数据集制图函数主要是对行、列、索引和数组的操作,包含对整个数据集进行内部的语义映射与统计计算,以此生成富含信息的图表,使用seaborn绘制图形,有三种方式,分别如下:
·plt.style.use( ‘seaborn’)
.sns.set()
·调用seaborn函数
对于简单的制图,使用前两种都可以,但对于复杂图形,可能会使用第三种方式
柱状图:sns.barplot(x,y)
语法结构:sns.barplot(x ,y ,hue=,data=,color=,palette=,orient =)
x,y不同坐标上的值
hue:分类变量
data:数据
color:颜色
palette:调色板
orient:方向(vertical:垂直, horizontal:水平)
散点图:sns.scatter(x,y)
语法结构:sns.seatterplot(x,y,hue,data,color,palette,style,s,markers)
x,y不同坐标上的值
hue:分类变量
data:数据
color:颜色
palette:调色板
style:以分类变量作图,产生不同的形杖
s:形状大小
markers:形状
箱线图:sns.boxplot
语法结构:sns.boxplot(x,y,hue,data,order,width, Fliersize,linewidth,color,palette)
x,y不同坐标上的值
hue:分类变量
data:数据·
width:箱线宽度
fliersize:异常值点的大小
color:颜色
palette:调色板
linewidth:指定箱体边框的宽度
3、常见图形的绘制
3.1 饼图
语法结构:pie(x, explode,labels,colors,autopct=,pctdistance,shadow,startangle,radius,wedgeprops,textprops,center)
explode:突出大小
labels:标签
counterclock:是否逆时针呈现
colors:颜色
wedgeprops:设置饼图内外边界的属性
autopct:百分比
textprops:设置饼图中文本属性
pctdistance:百分比标签与圆心距离
center:设置中心位置
shadow:是否添加饼图阴影效果
labeldistance:设置各扇形标签与圆心距离
startangle:设置饼图的初始摆放角度
radius:设置饼图半径大小
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #图像能显示中文
plt.rcParams["axes.unicode_minus"] = False #确保负坐标轴能显示负号
x=[0.12,0.18,0.10,0.30,0.20,0.10]
y=['东北','华东','华北','华南','西北','西南']
explodes=[0,0.1,0,0,0.1,0]
colors=['red','blue','yellow','green','darkred','purple']
plt.pie(x,explode=explodes,labels=y,colors=colors,autopct='%.2f%%',pctdistance=0.5,
labeldistance=1.1,startangle=120,radius=1.2,counterclock=False,
wedgeprops={'linewidth':1.5,'edgecolor':'green'},
textprops={'fontsize':10,'color':'black'})
plt.title('订单金额分布图',pad=30)
plt.show()
3.2 条形图
条形图不仅适合分类水平较多的变量也更加适合对比差异。
语法结构:bar(x, y,width,bottom,color,linewidth,tick_label,align)
x:指定x轴上数值
y:指定y轴上数值
width:指定条形图宽度
color:条形图的填充色
edge:条形图的边框色
linewidth:条形图边框宽度
tick_label:条形图的刻度标签
align:指定轴上对齐方式
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #图像能显示中文
plt.rcParams["axes.unicode_minus"] = False #确保负坐标轴能显示负号
x=[0.12,0.18,0.10,0.30,0.20,0.10]
y=['东北','华东','华北','华南','西北','西南']
colors=['red','blue','yellow','green','darkred','purple']
plt.bar(x=range(0,len(x)),height=x,align='center',color=colors,tick_label=y)
plt.xlabel('地区',fontsize=15,labelpad=10)
plt.ylabel('销量',fontsize=15,labelpad=10)
plt.title('不同地区的消量对比图',fontsize=20,pad=20)
plt.show()
3.3 散点图
语法结构:plt.scatter(x, y, s, c, marker, cmap, norm, alpha, linewidths, edgecolorsl)
x:x数据
y:y轴数据
s:散点大小
c:散点颜色
marker:散点图形状
cmap:指定某个colormap值,该参数一般不用,用默认值
alpha:散点的透明度
linewidths:散点边界线的宽度
edgecolors:设置散点边界线的颜色
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif']=['SimHei'] #为了在绘图时能显示中文
plt.rcParams["axes.unicode_minus"] = False #为了在绘图时能显示负坐标轴的负号
train_data=np.loadtxt(r'C:\Users\trainData.txt')
train_data_label=train_data[:,2]
xy_1=train_data[np.where(train_data_label==1)]
plt.scatter(xy_1[:,0],xy_1[:,1],color='r',marker='s',s=5,label="训练数据 1")
plt.xlabel('坐标x',labelpad=10)
plt.ylabel('坐标y',labelpad=10)
plt.title('坐标散点图',pad=20)
plt.show()
seaborn官网:seaborn: statistical data visualization — seaborn 0.12.1 documentation
本文仅供学习交流