一.安装:绘图和可视化
pip install matplotlib
我们已经下好了anaconda 包含了绘图工具包 直接导入即可
import matplotlib.pyplotlib as plt
二.# 第一种图形 可视化绘图:折线图
# 上面由于是中文需要解决乱码的问题 b = [2,5,4,8,9,7,10] plt.plot(b) # 设置标题 plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.title('title经济发展趋势图',fontsize=20,color='red') # 设置 x y 轴的名称 plt.xlabel('x轴',fontsize=20) plt.ylabel('y轴',fontsize=20) # 调节图表大小 plt.show()
(2)第二种 绘制每个国家地区电影数量的柱状图
#(1)读取数据 mv = pd.read_csv('./aaa.csv') mv
# (2)每个地区有分区 进行分主 然后进行统计数量 size() movies = mv.groupby('产地').size().sort_values(ascending=False) movies
# (3)获取x, y 轴的值 x = movies.index x # 获取 y轴的值 y = movies.values y
(4)
# 绘制柱状图 bar # plt.bar(x,y,color='blue') # plt.show()显示图型 # 调节图表大小 plt.figure(figsize=(20,6)) # 注意是画图之前 plt.bar(x,y,color='blue') # 标题 plt.title('每个国家的或地区的电影数量',fontsize=30,color='k') # 没有位置固定 # x 轴的字体的的大小 和 旋转角度 plt.xticks(rotation=45,fontsize=15) # ticks 滴答点 参数 旋转 大小 # x 轴的设置 命名和大小 颜色 plt.xlabel('产地',fontsize=20,color='red') # y 轴的设置 plt.ylabel('电影数量',fontsize=20,color='red',rotation=90) # 显示柱状图上的数量 for a,b in zip(x,y,): plt.text(a,b+200,b,horizontalalignment='center',fontsize=15,color='red') # 保存图片 到指定的路径 plt.savefig('./电影柱状图.png') plt.show()
图形展示:(5)
(2.1)# 2 根据数据绘制每年电影上映数量的曲线图
# (1) 按照年代将读取的mv 电影进行进行分组
res = mv.groupby(['年代']).size().sort_index() # 这个可以进行排序 # mv['年代'].value_counts().sort_values() res = res[:-2] # 删除 最后两个数 res
(2)# 设置x z轴的值 和 y 轴的值
x = res.index x # 设置y 轴 y = res.values y
(3)绘图
# 大小是在绘图前 plt.figure(figsize=(10,6)) plt.plot(x,y) # x 轴的设置 plt.xlabel('年代',fontsize=20,color='k') plt.ylabel('数量',fontsize=20,color='b') # x 轴 字体的设置 plt.xticks(fontsize=20,color='r') plt.show()
(4)图展示:最后的数据未完成统计
# 第三 饼图的设计
pd.cut?
(1)
# 获取电影时长 time_res = mv['时长'] time_res
(2)
# 分等份 res = pd.cut(time_res,[0,60,90,120,140,1000]) # time_res 是带分割的源数据 后面是份额区间 res# 分等份 res = pd.cut(time_res,[0,60,90,120,140,1000]) # time_res 是带分割的源数据 后面是份额区间 res
(3)
# 统计区间的电影数量 res = res.value_counts() res x = res.index x y = res.values y
(4)
# plt.pie(y,labels= x) plt.title('电影时长分步图',fontsize=20) patchs, l_text, p_text = plt.pie(y, labels=x, autopct='%0.2f%%',) # patchs 打补丁 for p in p_text: # p_text 代表内部的内容 %0.2f%% 0.2 表示保留两位浮点数 后面的% 是在区域内文本值后加% p.set_size(15) p.set_color('white') for l in l_text: l.set_size(13) l.set_color('r') plt.show()
图形展示:
# 4 直方图
(1)
x = mv['评分'] x
(2)
# plt.bar(x,y,color='blue') plt.hist(mv['评分'],bins=20, edgecolor='black',alpha=0.5, facecolor='red') plt.title('评分分布的直方图') plt.xlabel('评分范围') plt.ylabel('数量') # for a,b in zip(x,y): # plt.text(a,b+200,b,horizontalalignment='center',fontsize=15,color='red') plt.show()
评分图不是想做成的样子