文章目录
Python数据分析-matplotlib
导入
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
df=pd.read_excel(\'movie_data3.xlsx\')
df.head()
双轴图的画法
import matplotlib.mlab as mlab
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=15)
print(bins)
from scipy.stats import norm
y = norm.pdf(bins, df[\'评分\'].mean(),df[\'评分\'].std()) # mu 均值 sigma标准差 正态概率密度曲线
ax2=ax1.twinx() #相同的x 不同的y轴
ax2.plot(bins,y,\'b--\')
ax2.set_ylabel(\'概率分布\',fontsize = 15)
plt.show()
5.电影时长和电影评分绘制散点图
两组数据构成地痞各坐标点 考察坐标的分布模式 用来比较聚合数据
plt.scatter(x,y,label=‘评分’,color=‘c’,marker=‘D’)
maker散点的属性
x=df[\'时长\'][::100]
y=df[\'评分\'][::100]
plt.figure(figsize=(10,6))
plt.scatter(x,y,label=\'评分\',color=\'c\',marker=\'D\')
plt.title(\'电影时长与评分散点图\',fontsize=20)
plt.xlabel(\'时长\',fontsize=16)
plt.ylabel(\'评分\',fontsize=16)
plt.legend()
plt.show()
6.地区的评分箱形图 盒须图
原属数据的特征 中位数 异常值等等
计算过程
- Q3上四位数 Q1下四位数 中位数
- Q3-Q1 箱子的高度
- 绘图 上下范围 以及中位数的横线
- 异常值:大于Q3的1.5倍的Q3-Q1 或者小于Q1
- 极端异常值 3倍
plt.box(x,notch,sym labels,whis)
whis异常值越大越宽松 比如2
flierprops 异常值的设定
patch_artist 箱体的参数
美国电影评分的箱线图
data=df[df.产地==\'美国\'][\'评分\']
plt.figure(figsize=(10,6))
plt.boxplot(data,whis=2,patch_artist=True,boxprops={\'color\':\'k\',\'facecolor\':\'#9999ff\'},flierprops={\'marker\':\'o\',\'markerfacecolor\':\'r\',\'color\':\'k\'})
plt.title(\'美国电影评分\',fontsize=15,)
plt.show()
-
坐标背景颜色
plt.gca()
ax.patch.set_facecolor(‘gray’) - 图像旋转vert
多组数据箱线图
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=1.5,patch_artist=True,boxprops={\'color\':\'k\',\'facecolor\':\'#9999ff\'},flierprops={\'marker\':\'o\',\'markerfacecolor\':\'r\',\'color\':\'k\'})
ax = plt.gca()
ax.patch.set_facecolor(\'gray\')
ax.patch.set_alpha(0.3)
plt.show()
6.相关系数矩阵图-热力图
data = df[[\'投票人数\',\'评分\',\'时长\']]
data
pandas本身封装了画图函数
各个属性的散点图 对角线上是分布图
%pylab inline
result = pd.plotting.scatter_matrix(data[::100], diagonal=\'hist\',color=\'k\',alpha=0.3,figsize=(10,10))
电影时长,投票人数 评分的相关系数矩阵 热力图
参数 vmax vin:颜色极值 annot:注释参数
import seaborn as sns
corr = data.corr()
corr = abs(corr)
fig = plt.figure(figsize=(10,8))
ax=fig.add_subplot()
ax = sns.heatmap(corr,vmax=1,vmin=0,annot=True,annot_kws={\'size\':13,\'weight\':\'bold\'},linewidth=0.05)
plt.xticks(fontsize=15)
plt.yticks(fontsize=15)
plt.show()