先放一张结果图。

数据预处理

首先,导入包。

import pandas as pd
import numpy as np
import re
import matplotlib.pyplot as plt

读取数据并查看。

df=pd.read_csv('data/movie.csv',encoding='gb18030')
df.head()


为了得到电影类型的分布,我们需要处理第二个字段“types”。
首先将该字段字符串按逗号分开,得到一个二维数组。

type_list = []
for item in df['types'].tolist():item = item.split(',')        type_list.append(item)


然后将二维数组转一维。

type_list2=sum(type_list,[])

再去掉字符串中的空格和引号(这个是后面把数据打印出来时观察到的)。

type_list3=[]
for item in type_list2:item=item.strip()item=re.sub('\'','',item)type_list3.append(item)

接下来对数组中元素计数,这里用到了collection库。

import collections
c=collections.Counter(type_list3)
c.items()


现在我们得到了“类型-数量”字典。先把它转化为Series。

df2=pd.Series(c)
df2=df2.sort_values(ascending=False)

再转化为DataFrame。

data = {'types':df2.index ,'num': df2.array}
df3=pd.DataFrame(data)
df3



由于后面的数据太小,我们把数量小于100(index>=23)的类型合并为“其他”。

df3 = df3[:23].append({'types': '其他', 'num': df2.iloc[23:].sum()},ignore_index=True).sort_values(by='num',ascending=False)
df3

绘制饼状图

解决中文显示问题。

plt.rcParams['font.sans-serif'] = ['KaiTi'] # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题

开始绘制。

# np.hstack():在水平方向上拼接数组
explode =np.hstack((np.zeros(6),np.linspace(0,2.5,len(df3)-6))) # (每一块)离开中心距离
plt.figure(figsize=(15, 10))
plt.title("电影类型分布",fontsize = 20)
plt.pie(df3['num'],labels=df3['types'],autopct='%1.1f%%',textprops={'fontsize':16},explode=explode);

这里绘制的关键是explode属性。它的含义是(每一块)离开中心距离,代码中用数组表示。数组由一个全零的数组和一个等差数列数组拼接而成,这样就达到了我们想要的效果(大块位置不变,小块逐渐偏离)。

Matplotlib绘制好看的饼状图:电影类型数据的简单处理与可视化相关推荐

  1. Matplotlib绘制漂亮的饼状图|python绘制漂亮的饼状图

    python绘图系列文章目录 往期python绘图合集: python绘制简单的折线图 python读取excel中数据并绘制多子图多组图在一张画布上 python绘制带误差棒的柱状图 python绘 ...

  2. 最全Python绘制饼形图(饼状图)

    饼状图(pie chart)一般用于描述分类型数据的相对频数或百分数频数分布,呈现部分与总体的关系.    一.导入绘图数据 首先导入绘图所需的数据. import os import pandas ...

  3. C#绘制立体三维饼状图(超酷)

    原文地址: http://www.msproject.cn/Article/3DTransparentPie.html [翻译]Julijan Sribar著3D Pie Chart 一个用于绘制立体 ...

  4. 神奇的饼状图:如何用最简单的方式呈现复杂的数据

    简介 饼状图顾名思义就是形如圆饼状的图形,它是一种常用的图表类型,通常用于展示数据的占比关系.饼状图通过将一个圆形区域划分为多个子区域,反应出不同子类数据之间的的对比关系以及子类数据在大类中的百分比. ...

  5. matplotlib(2)---柱状图, 直方图, 饼状图的绘制

    一. 柱状图 电影票房柱状图1 import matplotlib.pyplot as pltimport numpy as np # 设置matplotlib正常显示中文和负号matplotlib. ...

  6. Python绘制节点是饼状图的社交网络图(Plot network with pie chart)

    目录 问题描述 问题拆解 数据准备 绘图思路 代码实现 总结 成图 network 性质 参考 问题描述 专业描述:想要绘制一幅社交网络图,并且每个节点上绘制一个饼状图. 大白话:韩韩(楼主)有一天突 ...

  7. 【H5】 echarts绘制条形统计图,饼状图

    [H5] echarts绘制条形统计图 表格需要引入echarts.js: https://echarts.baidu.com/dist/echarts.min.js 效果图如下: 引入结构: 实例化 ...

  8. python饼状图教程_Python数据可视化:饼状图的实例讲解

    使用python实现论文里面的饼状图: 原图: python代码实现: # # 饼状图 # plot.figure(figsize=(8,8)) labels = [u'Canteen', u'Sup ...

  9. pandas数据绘制直方图、饼状图、线形图

    pandas的数据分为Series和Dataframe. Series是能够保存任何类型的数据(整数.字符串.浮点数.Python对象等)的一维标记数组: DataFrame是一种表格类型的数据结构. ...

最新文章

  1. Mercurial入门学习
  2. 6.1 C/S 架构介绍
  3. 字符串类String
  4. CorelDRAW中将矩形变圆角的方法
  5. 计时器Chronometer和时钟(AnalogClock和DigitalClock)
  6. .net core webapi 列表返回指定的字段_ADO.NET 使用初探之SQL操作 | C# 数据操作系列...
  7. Psych101(part1)--Day1
  8. python绘制组织结构图_二、Python的程序组织结构
  9. mysql 还原数据库 unknown command 'b'_mysql数据库还原出错ERROR:Unknown command ‘\\’解决手记...
  10. 信息系统开发平台OpenExpressApp - 从compositewpf到MEF
  11. 苹果ppt_如何下载小程序上的PPT与PDF? (苹果系统、安卓系统)
  12. 解决linux下syslog文件过大
  13. Industry工业软件开发平台设计A-1
  14. 会写SQL==精通MYSQL?NONONO,进来学习一下吧! 0.0
  15. 2021国产数据库领域最具商业合作价值企业盘点
  16. h5前端IE浏览器低版本判断及升级提示
  17. ceph-deploy离线部署ceph集群及报错解决FAQ
  18. 基于elementUI封装了基础表单组件
  19. python常用小脚本总结
  20. 大厂iOS APP都用了哪些第三方库?

热门文章

  1. 前端框架之bootstrap框架基本介绍及常用UI框架
  2. 英语购物计算机,赖世雄购物英语口语大全(68)买计算机 (3)
  3. 用calibre抓取RSS新闻制作电子书及推送到kindle
  4. 来自山西机器人乐队_全球首个中国风机器人乐队亮相演出,人工智能时代已经到来!...
  5. 和Hinton等图灵奖得主聊人工智能是怎么样一种体验?
  6. 2015 年第七届全国大学生数学竞赛江西赛区获奖名单(数学专业)
  7. 网络地址和主机地址的区别---思考与延伸
  8. 自己写搜索引擎?这里有一份大牛写的详细教程
  9. 从BAE到SAE,从SAE又回到BAE
  10. linux读写锁 饥饿,读写锁中写锁的饥饿问题