小象学院数据分析笔记:绘制常见的图形
折线图:
plt.plot(x,y): x,y分别为x和y轴数据
# 添加数值标注
import pandas as pd
import matplotlib.pyplot as pltimport pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
stock_df = pd.read_csv('../data/stock_df.csv')
plt.figure(figsize = (10,5))
# 绘制贵州茅台每日股价收盘价折线图
plt.plot(stock_df.Date, stock_df['Close'], label = '收盘价')# 设置图像标题为'贵州茅台每日股价折线图'
plt.title('贵州茅台每日股价折线图')# 将x轴刻度标签旋转60度
plt.xticks(rotation = 60)# 显示图例
plt.legend()
plt.show()
柱形图:
plt.bar(x,height,width,color) :x轴标签,height每个标签对应的高度
menu = pd.read_csv('../data/menu.csv')
plt.figure(figsize = (20,8))
nutri_name = ['Total Fat (% Daily Value)','Saturated Fat (% Daily Value)','Cholesterol (% Daily Value)','Sodium (% Daily Value)','Carbohydrates (% Daily Value)','Vitamin A (% Daily Value)','Calcium (% Daily Value)','Iron (% Daily Value)']
nutri = menu.loc[0 , nutri_name]
plt.bar(nutri_name, nutri, width=0.5, color=['b','r','g','y','c','m','b','k'])
for i in nutri.index: # TODO# 为柱形添加数值标注,使用plt.text()函数,标注内容为nutri中的数值,ha设置为'center',va设置为'bottom'plt.text(i,nutri[i],nutri[i], ha='center',va='bottom')
plt.xticks(rotation = 10)
plt.title('烟肉蛋麦满分营养成分每日推荐摄入量百分比柱形图')
plt.show()
直方图:
绘制直方图使用plt.hist()函数:
plt.hist(data, bins, facecolor, edgecolor)
# 选择 menu 数据集中的 Calories 列,将数据记录为 calories
calories = menu.Calories
# 设置直方图的组数,这里设置为从最小值开始每加100为一组
group = int((max(calories)-min(calories))/100)# 绘制直方图, 矩形填充色设置为'blue',边框颜色设置为'black'
plt.hist(calories, group, facecolor="blue", edgecolor="black")# 图像标题设置为'麦当劳菜单卡路里含量分布直方图'
plt.title('麦当劳菜单卡路里含量分布直方图')
plt.show()
data:绘图用到的数据
bins:直方图的条形数目,
facecolor:矩形的填充颜色
edgecolor:条形的边框颜色
直方图和柱形图的区别:
- 柱形图中用柱形的高度表示各类别的数值,横轴表示类别,宽度是固定的;
直方图是用矩形的高度表示每一组的频数或频率,宽度则表示各组的组距,因此其高度与宽度均有意义。
2.直方图主要用于展示连续型数值型数据,所以各矩形通常是连续排列的;而柱形图主要用于展示分类型数据,常常是分开排列的。
饼图:
plt.pie(x, labels, autopct, shadow, startangle)
x:传入绘制用到的数据;
labels:用于设置饼图中每一个扇形外侧的显示说明文字;
autopct:用于设置饼图内百分比数据,可以使用format字符串或者format function,例如’%.1f%%’指小数点后保留1位小数;shadow:表示是否在饼图下面画阴影,默认值:False,即不画阴影;
startangle:设置起始绘制角度,默认图是从x轴正方向逆时针画起,如果设定startangle=90,则从y轴正方向画起。
# 按照类型变量'Category'对原数据分组,使用groupby函数,然后计算每组数据的数据量,使用size()函数,将输出的数据记录为num
num = menu.groupby('Category').size()
# TODO
# 绘制麦当劳各类型菜品数饼图,labels设置为num.index,每个扇形内百分比数据格式设置为:'%.1f%%', 起始绘制角度设置为190度
plt.pie(num,labels = num.index, autopct='%.1f%%',shadow=False,startangle=190)
箱线图:plt.boxplot(data, labels)
nutri_name = ['Total Fat (% Daily Value)','Saturated Fat (% Daily Value)','Cholesterol (% Daily Value)','Sodium (% Daily Value)','Carbohydrates (% Daily Value)','Vitamin A (% Daily Value)','Calcium (% Daily Value)','Iron (% Daily Value)']
# TODO
# 根据nutri_name列名称索引所需数据,将输出数据记录为nutri_data
nutri_data = menu[nutri_name]
# TODO
# 绘制箱线图,plt.boxplot默认按行数据绘制箱线图,所以data参数传入nutri_data的转置矩阵:nutri_data.T,labels设置为nutri_name
plt.boxplot(nutri_data.T, labels = nutri_name )
箱线图,也称为盒须图或者盒式图,是一种用作显示一组数据分散情况的统计图,它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较,图像中可以显示一组数据的最大值、最小值、中位数、及上下四分位数
矩形盒两端的位置分别对应数据的上下四分位数也就是Q1和Q3,所以矩形盒的长度Q3-Q1也叫作四分位距,或者四分位差,用IQR表示。
在数据分析中,往往会重点考虑数据列中中间部分的数字,通常会将前百分之二十五和后百分之二十五的数据切除掉,保留从Q1到Q3之间的数据。
矩形盒内部的线段表示中位数Q2。
从矩形盒的两端延伸出两条线,线的端点分别为Q1-1.5IQR和Q3+1.5IQR,这两个端点叫作异常值截断点,称其为内限。
落在内限之外的点为数据的异常值,所以这两个端点也表示在不考虑异常值的情况下数据的最大值和最小值。
Q1-3IQR和Q3+3IQR处的两个端点,称为外限,落在内限和外限之间的点被称作温和异常值,外限之外的异常值叫作极端异常值。
pandas也可直接绘制箱线图:直接调用boxplot()
小象学院数据分析笔记:绘制常见的图形相关推荐
- 百度前端学院小薇学院task7笔记
1.纯css拉菜单默认样式 <!DOCTYPE html> <html lang="en"> <head><meta charset=&q ...
- 百度前端-小薇学院Task5笔记总结
一. 浮动 浮动脱离标准文档流,漂浮于文档流上方,元素里面的内容可以随着元素宽度的改变而进行改变. 二. BFC 一.BFC的概念 Block Formatting Context BFC是一个独立 ...
- Spark小象学院笔记
---小象学院陈超视频教程笔记------陈超讲 第一节 Scala基础与实践 基于JVM的FP+OO 静态类型 和Java互操作 函数式编程和面向对象的结合,纯静态的语言. 解释器(interpre ...
- 小薇学院任务一:零基础HTML编码(笔记)
一.标签的嵌套规则以及<a>标签 <ul><li><a href='#'>导航链接一</a></li><li>< ...
- 小象学院梁斌python_Python数据分析_深度学习及TensorFlow.pdf
法律声明 本课件包括:演示文稿,示例,代码,题库,视频和声 音等,小象学院拥有完全知识产权的权利:只限于善意 学习者在本课程使用,不得在课程范围外向任何第三方 散播.任何其他人或机构不得盗版.复制 ...
- 大数据分析笔记 (6) - 文本分析 (Text Analysis)
大数据分析笔记 - 文本分析 总览 文本分析步骤 挑战 第一步:收集原始文本数据(Collecting Raw Text) 第二步:表示文本 (Representing Text) 第三步:词频-逆文 ...
- 基于python爬虫的岗位数据分析以拉勾网为例_爬虫小实例-拉勾网数据分析岗位...
原标题:爬虫小实例-拉勾网数据分析岗位 欢迎关注天善智能 hellobi.com,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习.问答.求职,一站式搞定! 对商业智能BI.大数据分析挖 ...
- 基于Unity的2D小游戏 SpeedDown 开发笔记(学习bilibili@[M_Studio]的教学视频
基于Unity的2D小游戏 SpeedDown 开发笔记(学习bilibili@M_Studio的教学视频) 主要内容:在Sunnyland游戏的设计基础上,新增了物理组件Joint系列.DrawGi ...
- 尚硅谷谷粒学院学习笔记(防坑点的总结部分勘误)
谷粒学院学习笔记 部分勘误 数据库设计规约 模块说明 环境搭建 创建一个Spring Boot 的父工程,版本使用:2.2.1.RELEASE 父工程pom.xml里面添加 在pom.xml中添加依赖 ...
- 2019最新《小象学院Python机器学习和算法高级版项目实战》
├─00.课程介绍 │ <机器学习·升级版II>常见问题FAQ - 小象问答-hadoop,spark,storm,R,hi.jpg │ <机器学习>升级版 ...
最新文章
- eclipse下运行自定义maven命令
- 基于ESP32的竞赛裁判系统功能调试-光电条检测板
- RFC 协议下载方法
- Mac OS X上的lipo命令详解
- 信号与系统:快速傅里叶变换FFT中的实际频率(奈奎斯特频率解析)
- 2021HDU多校6 - 7028 Decomposition(构造)
- 挖掘城市ip_不断挖掘IP价值,紧抓乐园经济新机遇!
- 最小二乘支持向量机的分析与改进及Python实现
- 延迟任务调度系统—技术选型与设计(上篇)
- for、foreach、stream 哪家的效率更高,你真的用对了吗?
- orocod_kdl学习(一):坐标系变换
- HtmlUnitDriver 网页内容动态抓取
- 入坑codewars第五天-Dubstep、Regex validate PIN code
- 视频工时测量软件哪个好,为什么越来越多的企业选择VIOOVI工时分析软件?
- QTTabBar+Office Tab+Quicker 助力高效使用Windows办公
- 【转】将安全证书导入到java的cacerts证书库
- 【180628】VC++方格益智小游戏
- ThinkPHP5.0+PHPMailer 实现qq邮箱验证码
- **京东撸货是什么,京东撸货具体怎么玩,能不能赚钱,我来告诉你**
- docker安装mysql并配置文件_docker 安装mysql5.7 加my.cnf