画图连接
import matplotlib.pyplot as plt
import numpy as np
df.plot(kind=’bar’)
直角坐标系图由数据点标记时传(x,y) :线性,散点
直角坐标系图传(x.data):柱状
_
#导入画图包mat-matlab软件的一部分库import matplotlib.pyplot as plt# 换字体plt.rcParams['font.sans-serif']=['SimHei'] #plt是matplotlip包的缩写,他修改了参数# kind是图表类型a.season.value_counts().plot(kind='bar')#python的画图函数(plot)#对季度的值的个数进行统计绘图a.season.value_counts().plot(kind='pie')plt.rcParams['axes.unicode_minus']=False #解决负号不出现的问题plt.show()# 图显示
先定义一个画布做合适的画布大小:
fig,ax = plt.subplots(1,1,figsize=(25,10))
1.线性图 =
plt.plot([x],y,[fmt],,data=None,*kwargs)
ftm- 线型,颜色,标记形状 linestyle,marker color
lw=0~1 线宽
label=’ ‘ 图例
x=np.linspace(1,10,100)plt.plot(x,np.sin(x*2),lw=0.5,color="b",linestyle='solid',label='')plt.legend() 打印图例plt.axis('equal'|[x.min,x.max,y.min,y.max])plt.show() 显示图plt.xlim(n,n)x轴的下限和上限plt.ylim(n)plt.xlabel('')plt.ylabel('')plt.title()
2.散点图[scatter]:看俩个变量中间的关系
plt.scatter(x,y)
当图必须由坐标点(x,y)表示.
s=1000,c=’red’
x=2*np.random.rand(100,1)y=4+3*x+np.random.randn(100,1)# 传x,y轴# c是标记点颜色,edgecolors是外层膜的颜色.lw是外层膜的厚度,s标记点大小,alpha透明度plt.scatter(x,y,alpha=0.21,s=1000,c='red',linewidths=10,edgecolors='blue')
3.柱状图 [hist]: 数据分布(正态随机胡不影响,幂律相关有反馈).
#柱状图看数据分布np.random.seed(2)data=np.random.randn(10000)# 直接传数据,bins是条个数plt.hist(data,bins=1000,alpha=0.4)plt.show()
4.条形图 计数
#计数data=[5,20,15,25,10]# 第二个参数是高度,plt.bar(['a','b','c','d','e'],data)plt.show()
5.堆积条形图
import numpy as np# label='b'标签size=5x=np.arange(size)a=np.random.random(size)b=np.random.random(size)plt.bar(x,a,label='a')plt.bar(x,b,bottom=a,label='b')plt.legend()plt.show()
5.子图
plt.subplot(3,3,1) : 3行3列第一个
plt.figure(figsize=(10,10)),画布 长高
# 第三种子图创建fig,ax=plt.subplots(3,3,sharex='col',sharey='row')#返回画布和子图
第二种
#第二种方法创建一个画布fig=plt.figure()#调整子图间的距离fig.subplots_adjust(hspace=0.4,wspace=0.4)for i in range(1,7):#添加一个子图ax=fig.add_subplot(2,3,i) #几行几列第几个ax.text(0.5,0.5,str((2,3,i)),fontsize=12,ha='center')
第三种
for i in range(1,7):# 绘制一个子图plt.subplot(2,3,i) # 几行几列第几个# 填充文本plt.text(0.5,0.5,str((2,3,i)),fontsize=12,ha='center')
plt.line(x,y,fmt,label) x,y plt.scatter(x,y,s,c,) plt.hist(x,data,c,bins) plt.bar(x,data) plt.pie() plt.xlable() plt.axis([]) plt.title() plt.rcparams(font.sans.san)=[si]
plt.line(x,y,fmt,label) x,y
plt.scatter(x,y,s,c,)
plt.hist(x,data,c,bins)
plt.bar(x,data)
plt.pie()
plt.xlable()
plt.axis([])
plt.title()
plt.rcparams(font.sans.san)=[si]
kdeplot(核密度估计图) & distplot
Kernel Density Estimation
Python 探索性数据分析(Exploratory Data Analysis,EDA)
导包
import matplotlib.pyplot as pltimport numpy as npimport pandas as pdimport seaborn as snsplt.rcParams['axes.unicode_minus']=Falseplt.rcParams['font.sans-serif']=['SimHei']
分布图:
# 分布图->柱状图+核密度图sns.distplot(data['x'])sns.distplot(data['y'])data1=np.random.randn(1,100)data2=np.random.rand(1,100)sns.distplot(data1)sns.distplot(data2)
双密度:
# 圆圈是等高线密度在一层圈上密度一致sns.kdeplot(data)
俩变量联合分布图: 数值型数据
# 外侧俩个正态分布图代表里边数据分布的密度sns.jointplot('x','y',data,kind='kde') 雷达图,颜色深浅sns.jointplot('x','y',data)sns.jointplot('x','y',data,kind='hex') #six六边型sns.jointplot('x','y',data,kind='reg')# regression回归线,
多变量图# 鸢尾花数据
# 鸢尾花数据iris=sns.load_dataset('iris')iris.head()# 对图PairGridsns.pairplot(iris,hue='species',height=3)# 自己与自己比较,自己的频率分布sns.pairplot(iris,hue='species',height=3,kind='kde')

箱线图
sns.boxplot(x='species',y='sepal_length',data=iris)

小提琴图:
# 中间是箱子,俩侧是分布图sns.violinplot(x='species',y='sepal_length',data=iris)sns.violinplot(x='sepal_length',y='sepal_width',data=iris)
格子图
tips=sns.load_dataset('tips')tips.head()grid=sns.FacetGrid(tips,row='sex',col='time',margin_titles=True)grid.map(plt.hist,'tip',bins=np.linspace(0,70,15))
定义一个函数,功能为绘制每个类别变量(函数参数中的feature) barplot
定义函数:(列名,数据:train,test,画布大小,保存图片,saveimg=False)值计数多个子图:fig,ax=plt.subplots(2,1);画图1:sns.barplot(x(值计数的索引),y,palette='Set2'风格)旋转角度画图2旋转角度位置:ax[0].set_title()
# feature:查看的列名def lookup_feature(feature, data_train = train, data_test = test, figsize=(8,5),saveimg = False):# 提取特征,值计数train_feat = data_train[feature].value_counts()test_feat = data_test[feature].value_counts()# 创建画布和子图fig_feature,ax=plt.subplots(2,1,sharex=True,sharey=True,figsize=figsize)# 画图,分别绘制训练集和测试集图sns.barplot(x=train_feat.index,y=train_feat.values,ax=ax[0],palette='Set2')# 训练集设置标签旋转角度plt.xticks(rotation=60)# 测试集Blues_d Dark2sns.barplot(x=test_feat.index,y=test_feat.values,ax=ax[1],palette='Paired')plt.xticks(rotation=45)# 设置格式ax[0].set_title(feature + ' of training dataset')ax[1].set_title(feature + ' of test dataset')ax[0].set_ylabel('Counts')ax[1].set_ylabel('Counts')#自动调整图像空隙plt.tight_layout()# 保存图片if saveimg == True:# 图片名称figname = feature + ".png"#判断images目录里是否不存在os操作系统 operating systemif not os.path.exists('./images'):# 如果不存在,创建一个目录os.makedirs('./images')# 保存图像 dpifig_feature.savefig('./images/'+figname, dpi = 65)

因子图:sns.factorplot/sns.catplot(‘Pclass’,’Survived’,data=data,hue=’Sex’,kind=’point’)
# 船舱等级与幸存者的关系,huesns.factorplot('Pclass','Survived',data=data,hue='Sex')plt.show()
计数图: countplot()
交叉表:crosstab
# .style.background_gradient(cmap='summer_r') 更改风格pd.crosstab(data.Pclass,data.Survived,margins=True).style.background_gradient(cmap='summer_r')
pd.crosstab(data.Pclass,data.Survived,margins=True).style.background_gradient(cmap=’summer_r’)
