双轴图
首先还是各种准备工作:
import warnings
warnings.filterwarnings('ignore')
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
import matplotlib.mlab as mlab
from scipy.stats import norm
fig = plt.figure(figsize=(10,8))
ax1=fig.add_subplot(111)
n,bins,patches = ax1.hist(df['评分'],bins=100,color='m')
ax1.set_ylabel('电影数据',fontsize=15)
ax1.set_xlabel('电影数据',fontsize=15)
ax1.set_title('频率分布图',fontsize=20)
#计算正态概率密度函数的一个具体的命令
y = norm.pdf(bins,df['评分'].mean(),df['评分'].std())
#与ax1共用一个x轴
ax2 = ax1.twinx()
ax2.plot(bins,y,'b--')
ax2.set_ylabel('概率分布',fontsize=15)
plt.show()
根据电影时长和电影评分绘制散点图
用两组数据构成多个坐标点,考察坐标点的分布,判断两个变量之间是否存在某种关联或总结坐标点的分布模式。散点图将序列显示为一组点。值由点在图表中的位置表示,类别由图标中的不同标记表示。散点图通常用于跨类别的聚合数据。
x = df['时长']
y = df['评分']
plt.figure(figsize=(10,8))
plt.scatter(x,y)
plt.legend()
plt.title("电影时长与评分散点图",fontsize=20)
plt.xlabel("时长",fontsize=18)
plt.ylabel("评分",fontsize=18)
plt.show()
数据量太大,可以选取部分数据
plt.scatter(x,y,color=‘c’,marker=‘p’) #换成星星标记
形状还有很多
绘制各个地区的评分箱型图
箱型图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。在各种领域也经常被使用,常见于品质管理。它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较。箱线图的绘制方式是:先找出一组数据的中位数、两个四分位数、上下边缘线;然后,连接两个四分位数画出箱子;再将上下边缘线与箱子连接,中位数在箱子中间。
美国电影评分的箱线图
data = df[df.产地=='美国']['评分']
plt.figure(figsize=(10,6))
#whis设置异常值,如果不设置默认是1.5
#flierprops设置异常值样式
plt.boxplot(data,whis=2,flierprops={'marker':'o','markerfacecolor':'r','color':'k'})
plt.title('美国电影评分',fontsize=20)
plt.show()
多组数据箱线图
data1 = df[df.产地=='中国大陆']['评分']
data2 = df[df.产地=='日本']['评分']
data3 = df[df.产地=='中国香港']['评分']
data4 = df[df.产地=='英国']['评分']
data5 = df[df.产地=='法国']['评分']
plt.figure(figsize=(12,8))
plt.boxplot([data1,data2,data3,data4,data5],labels=['中国大陆','日本','中国香港','英国','法国'],whis=2,flierprops={'marker':'o','markerfacecolor':'r','color':'k'})
plt.title('电影评分箱线图',fontsize=20)
data1 = df[df.产地=='中国大陆']['评分']
data2 = df[df.产地=='日本']['评分']
data3 = df[df.产地=='中国香港']['评分']
data4 = df[df.产地=='英国']['评分']
data5 = df[df.产地=='法国']['评分']
plt.figure(figsize=(12,8))
#vert=False变成横向
plt.boxplot([data1,data2,data3,data4,data5],labels=['中国大陆','日本','中国香港','英国','法国'],whis=2,
flierprops={'marker':'o','markerfacecolor':'r','color':'k'},vert=False)
plt.title('电影评分箱线图',fontsize=20)
#得到当前的坐标系
ax = plt.gca()
#设置背景颜色
ax.patch.set_facecolor('gray')
#设置透明度
ax.patch.set_alpha(0.3)
相关系数矩阵图–热力图
Pandas里面本身也封装了画图函数
我们也可以画出各个属性之间的散点图,对角线是分布图
%pylab inline
result = pd.pandas.plotting.scatter_matrix(data[::100],diagonal='kde',color='k',alpha=0.3,figsize=(5,5))