?EDA?入门
visualization.py
import matplotlib
matplotlib.use("TkAgg")
import pandas as pd
from matplotlib import pyplot as plt
import warnings
warnings.filterwarnings('ignore')
df = pd.read_csv("diabetes.csv")
# look at the first 5 rows of the dataset
print(df.head())
df.hist()
plt.tight_layout()
plt.show()
?数据集下载地址:(需要登陆,没有账号可以注册一个)?
Pima Indians Diabetes Database (kaggle.com)
pd.read_csv()读取数据集,得到的是dataframe类型的数据。
df.head()? ? ? ? ? ? ?读取最开始的5行数据
df.hist()? ? ? ? ? ? ? ?设置为直方图
plt.tight_layout()? 可以解决不同轴域的标签叠在一起的问题。
plt.show()
输出:
Pregnancies Glucose ... Age Outcome
0 6 148 ... 50 1
1 1 85 ... 31 0
2 8 183 ... 32 1
3 1 89 ... 21 0
4 0 137 ... 33 1
[5 rows x 9 columns]
import matplotlib
matplotlib.use("TkAgg")
import pandas as pd
from matplotlib import pyplot as plt
import warnings
warnings.filterwarnings('ignore')
df = pd.read_csv("diabetes.csv")
# show density plot
# create a subplot of 3 x 3
plt.subplots(3,3,figsize=(20,20))
# Plot a density plot for each variable
for idx, col in enumerate(df.columns):
ax = plt.subplot(3,3,idx+1) #选中第idx+1个区域返回
ax.yaxis.set_ticklabels([]) #获取当前活跃的的axes然后在上面作图,,隐藏刻度值,但是保留坐标轴标签
sns.distplot(df.loc[df.Outcome == 0][col], hist=False, axlabel= False, kde_kws={'linestyle':'-', 'color':'black', 'label':"No Diabetes",'bw': 1.0})
sns.distplot(df.loc[df.Outcome == 1][col], hist=False, axlabel= False, kde_kws={'linestyle':'--', 'color':'black', 'label':"Diabetes",'bw': 1.0})
ax.set_title(col)
# Hide the 9th subplot (bottom right) since there are only 8 plots
plt.subplot(3,3,9).set_visible(False)
plt.tight_layout()
plt.show()
?figsize表示设置图像大小
bw是带宽。你应该调整bw。较大的带宽导致较大的面元大小(例如,平滑的密度函数),而较小的带宽导致较小的面元(更高的分辨率)。
seaborn.distplot(data, bins=None, hist=True, kde=True, rug=False, fit=None, hist_kws=None, kde_kws=None, rug_kws=None, fit_kws=None, color=None, vertical=False, norm_hist=False, axlabel=None, label=None, ax=None)
参数说明:
输出:
?基于上面的显示,可以做出以下分析:
可以发现哪些因素是强预测因子
哪些曲线符合正态分布(这是我们期望的)
哪个是不可能值,异常的值
参考:?
fig, ax = plt.subplots(2, 2, figsize=(20,20)) # 返回一个 Figure实例fig 和一个 AxesSubplot实例ax fig代表整个图像,ax代表坐标轴和画的图,ax是保存 AxesSubplot实例 的 ndarray数组,通过下标获取需要的子区域。
ax[0][0].plot()? ?# 在第0行的第0个子区域画图
python的matlablib画图库------画布fig和坐标轴ax_python plt dpi ax-CSDN博客
Series
?DataFrame
等类型的对象,可以在matplotlib画图中作为数据来源放入参数中,如axes.plot(Series)
Series.plot(kind='line')
,但说到底还是与matplotlib有关的,是pandas自动帮你生成了axes
对象。【matplotlib绘图】Pandas绘图与matplotlib绘图的关联及异同_pandas和matplotlib区别-CSDN博客
?python神经网络项目实战