# 5、箱线图 # 又称盒式图,由5个数值点组成:最大值max、最小值min、中位数median、上下四分位数Q3、Q1。 # 可以帮我们分析出数据的差异性、离散程度和异常值等。 data=np.random.normal(size=(10,4)) # 生成10行4列的随机数组 labels=['A','B','C','D'] # 使用matplotlib绘制条形图: # plt.boxplot(data,labels=labels) # plt.show() # 使用seaborn绘制条形图 # df=pd.DataFrame(data, # columns=labels) # sns.boxplot(data=df) # plt.show() # 6、饼图 import matplotlib.pyplot as plt nums=[25,37,32,27,25] labels=['high-school', 'Bachelor', 'Master', 'Ph.d', 'Others'] # plt.pie(x=nums, # labels=labels) # plt.show() # 7、热力图 # heat map,是一种矩阵表示方法,通过颜色直观得知某个位置上数值的大小。 # 这里我们用Seaborn中的sns.heatmap(data)函数,seaborn自带了数据集flights,记录了1949年-1960年期间,每个月的航班乘客数量。 import matplotlib.pyplot as plt import seaborn as sns import ssl ssl._create_default_https_context = ssl._create_unverified_context flights=sns.load_dataset("flights") data=flights.pivot('year', 'month', 'passengers') # sns.heatmap(data) # plt.show() # 可观察到不同年份不同月份的乘客数量变化情况,其中颜色越浅代表乘客数量越多。 # 8、蜘蛛图 # 是一种展示一对多关系的方法,在蜘蛛图中一个变量相对于另一个变量的显著性是清晰可见的。 # 以王者荣耀的玩家战力图为例。 import numpy as np import matplotlib.pyplot as plt import seaborn as sns from matplotlib.font_manager import FontProperties labels=np.array([u'推进',u'KDA',u'生存',u'团战',u'发育',u'输出']) stats=[83,61,95,67,76,88] # 准备角度和战斗值 angles=np.linspace(0,2*np.pi,len(labels),endpoint=False) stats=np.concatenate((stats,[stats[0]])) angles=np.concatenate((angles,[angles[0]])) # 使用matplotlib绘制蜘蛛图: # fig=plt.figure() # 创建一个空白的figure对象,相当于画了一个白板。 # ax=fig.add_subplot(111,polar=True) # 把画板划分成1行一列 # ax.plot(angles,stats,'o-',linewidth=2) # 连线 # ax.fill(angles,stats,alpha=0.25) # 上色 # 设置中文字体 # font=FontProperties(fname=r"/Users/dingding/Downloads/DejaVuSans-Bold.ttf",size=14) # ax.set_thetagrids(angles*180/np.pi,labels,FontProperties=font) # plt.show() # 9、二元变量分布 # 看两个变量之间的关系,散点图就是一种二元变量分布。 # 这里我们使用Seaborn自带的数据集tips,这个数据集记录了不同顾客在餐厅的消费账单及消费情况。 import matplotlib.pyplot as plt import seaborn as sns tips=sns.load_dataset('tips') print(tips.head(5)) # sns.jointplot(x="total_bill",y="tip",data=tips,kind="scatter") # sns.jointplot(x="total_bill",y="tip",data=tips,kind="kde") # sns.jointplot(x="total_bill",y="tip",data=tips,kind="hex") # plt.show() # 报错: # ValueError: Could not interpret input 'tips' # 是因为输入的数据中不包含该字段tips,应该是tip。 # 10、成对关系 # 如果要探索数据集中多个成对双变量的分布,可以直接采用sns.pairplot()函数,它会展示出DataFrame中每对变量的关系 # 另外在对角线上,你能看到每个变量自身作为单变量的分布情况。是探索性分析中的常用函数,可以很快帮助我们理解变量对之间的关系。 # 这里我们用Seaborn中自带的iris数据集,这个数据集也叫做鸢尾花数据集: # 鸢尾花分成三个品种Setosa、Versicolour和Virginica,数据集中,针对每一个品种,都有50个数据, # 每个数据中包括4个属性,分别是花萼长度、宽度、花瓣长度、宽度。通过这些数据,需要你来预测鸢尾花卉属于哪一个品种。 import matplotlib.pyplot as plt import seaborn as sns iris=sns.load_dataset('iris') # 用Seaborn画成对关系 # sns.pairplot(iris) # plt.show()