数据分析——Matplotlib图形绘制
创建画布或子图
| 函数名称 | 函数作用 |
|---|---|
| plt.figure | 创建一个空白画布,可以指定画布大小,像素。 |
| figure.add_subplot | 创建并选中子图,可以指定子图的行数,列数,与选中图片编号。 |
绘制图形
| 函数名称 | 函数作用 |
|---|---|
| plt.title | 在当前图形中添加标题,可以指定标题的名称,位置,颜色,字体大小等参数。 |
| plt.xlabel | 在当前图形中添加x轴名称,可以指定位置,颜色,字体大小等参数。 |
| plt.ylabel | 在当前图形中添加y轴名称,可以指定位置,颜色,字体大小等参数。 |
| plt.xlim | 指定当前图形x轴的范围,只能确定一个数值区间,而无法使用字符串标识。 |
| plt.ylim | 指定当前图形y轴的范围,只能确定一个数值区间,而无法使用字符串标识。 |
| plt.xticks | 指定x轴刻度的数目与取值 |
| plt.yticks | 指定y轴刻度的数目与取值 |
| plt.legend | 指定当前图形的图例,可以指定图例的大小,位置,标签。 |
保存和显示图形
| 函数名称 | 函数作用 |
|---|---|
| plt.savafig | 保存绘制的图片,可以指定图片的分辨率,边缘的颜色等参数。 |
| plt.show | 在本机显示图形。 |
先导入第三方库和数据
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('./data.csv',encoding= 'gbk',engine='python')
data.head()
绘制散点图
# scatter散点图
plt.figure(figsize=(16,9))
plt.scatter(x= data.iloc[:,1],y=data.iloc[:,2])
plt.show()
# 图的基本设置
plt.figure(figsize=(16,9))
plt.scatter(x= data.iloc[:,1],y=data.iloc[:,2])
plt.title('散点图')
plt.xlabel('x轴')
plt.ylabel('y轴')
plt.show()
# 可移植代码
plt.rcParams['font.sans-serif'] = 'SimHei' ##设置字体为SimHei显示中文
plt.rcParams['axes.unicode_minus'] = False ##设置正常显示符号
# 旋转45°
plt.figure(figsize=(16,9))
plt.scatter(x= data.iloc[:,1],y=data.iloc[:,2])
plt.title('散点图')
plt.xlabel('x轴')
plt.ylabel('y轴')
plt.xticks(rotation=45)
plt.show()
# 减少x轴刻度
plt.rcParams['font.sans-serif'] = 'SimHei' ##设置字体为SimHei显示中文
plt.rcParams['axes.unicode_minus'] = False ##设置正常显示符号
plt.figure(figsize=(4,3))
plt.scatter(x= data.iloc[:,1],y=data.iloc[:,2])
plt.title('散点图')
plt.xlabel('x轴')
plt.ylabel('y轴')
plt.xticks(data.iloc[0:data.shape[0]:4,1],rotation=45)
plt.show()
# 修改x轴刻度上的值
plt.rcParams['font.sans-serif'] = 'SimHei' ##设置字体为SimHei显示中文
plt.rcParams['axes.unicode_minus'] = False ##设置正常显示符号
plt.figure(figsize=(4,3))
plt.scatter(x= data.iloc[:,1],y=data.iloc[:,2])
plt.title('散点图')
plt.xlabel('x轴')
plt.ylabel('y轴')
plt.xticks(data.iloc[0:data.shape[0]:4,1],range(18),rotation=45)
plt.show()
# 循环画图
# 加入图例说明,搞定
plt.figure(figsize=(16,9))
for i in range(2,10):
plt.scatter(x= data.iloc[:,1],y=data.iloc[:,i])
plt.title('散点图')
plt.xlabel('x轴',fontsize=14)
plt.ylabel('y轴',fontsize=14)
plt.xticks(data.iloc[0:data.shape[0]:4,1],range(18),rotation=45)
plt.legend(data.columns[2:10])
plt.show()
绘制折线图
所有图基本都是一样的画法,只是函数不同而已,只要掌握了一种就全会了的,所以不再详讲。
## 创建画布
plt.figure(figsize=(16,9)) ## 创建画布并设定画布大小
## 使用循环绘制图形
colors = ['red','yellow','blue','green']## 设定颜色
lineStyle = ['-',':','-.','--'] ## 设定线条类型
Mark = ['o','D','+','*'] ## 设定点的类型
for i in range(4):
plt.plot(X[:,i],color=colors[i],linestyle=lineStyle[i],marker = Mark[i])
plt.title('iris数据四个特征的折线图')## 添加标题
plt.xlabel('index') ## 添加x的标签
plt.ylabel('value')##添加y的标签
plt.xlim((0,170)) ## 设定x轴的范围
plt.ylim((0,10)) ## 设定y轴的范围
plt.legend(names) ## 设定图例
plt.show() ## 显示图形

绘制柱状图
plt.figure(figsize=(10,8))
plt.bar(data.iloc[:,0],data.iloc[:,3],color='blue')
plt.xlabel('x轴') ## 添加x的标签
plt.ylabel('value')##添加y的标签
plt.show()
plt.figure(figsize=(10,8))
for i in range(2,10):
plt.bar(data.iloc[:,0],data.iloc[:,i])
plt.xlabel('x轴') ## 添加x的标签
plt.ylabel('value')##添加y的标签
plt.legend(data.columns[2:10])
plt.show()
绘制饼图
## 饼图
plt.figure(figsize=(6,6))## 将画布设定为正方形,则绘制的饼图是正圆
label= data.iloc[::4,1]##定义饼状图的标签,标签是列表
#explode = [0.01]*data.shape[0]//4+2## 设定各项离心n个半径
plt.pie(data.iloc[::4,2],labels=label,autopct='%.3f%%')## 绘制饼图
plt.title('2017年第一季度各产业生产总值占比饼图')
plt.savefig('2017年第一季度各产业生产总值占比饼图.png')
plt.show()

## 子图
p = plt.figure(figsize=(10,10))
ax = p.add_subplot(2,2,1)
for i in range(2,10):
plt.scatter(x= data.iloc[:,1],y=data.iloc[:,i])
plt.title('散点图')
plt.xlabel('x轴')
plt.ylabel('y轴')
plt.xticks(data.iloc[0:data.shape[0]:4,1],range(18),rotation=45)
plt.legend(data.columns[2:10]) ax = p.add_subplot(2,2,2)
#plt.figure(figsize=(10,8))
for i in range(2,10):
plt.bar(data.iloc[:,0],data.iloc[:,i])
plt.xlabel('x轴') ## 添加x的标签
plt.ylabel('value')##添加y的标签
plt.legend(data.columns[2:10]) ax = p.add_subplot(2,2,3)
for i in range(2,10):
plt.plot(data.iloc[:,i]) ax = p.add_subplot(2,2,4)
#plt.figure(figsize=(6,6))## 将画布设定为正方形,则绘制的饼图是正圆
label= data.iloc[::4,1]##定义饼状图的标签,标签是列表
#explode = [0.01]*data.shape[0]//4+2## 设定各项离心n个半径
plt.pie(data.iloc[::4,2],labels=label)## 绘制饼图
plt.title('各产业生产总值占比饼图') plt.show()

绘制箱线图
## 创建画布
p = plt.figure(figsize=(16,4)) ## 创建画布并设定画布大小
## 使用循环绘制图形
for i in range(2,10):
ax = p.add_subplot(1,8,i-1)
plt.boxplot(data.iloc[:,i])
plt.xlabel(data.columns[i]) ## 添加x的标签
plt.ylabel('value')##添加y的标签
plt.show() ## 显示图形
数据分析——Matplotlib图形绘制的更多相关文章
- Matplotlib 图形绘制
章节 Matplotlib 安装 Matplotlib 入门 Matplotlib 基本概念 Matplotlib 图形绘制 Matplotlib 多个图形 Matplotlib 其他类型图形 Mat ...
- Python数据分析-Matplotlib图标绘制
Matplotlib介绍 Matplotlib是一个强大的Python绘图和数据可视化的工具包. Matplotlib的主要功能 Matplotlib是python中的一个包,主要用于绘制2D图形(当 ...
- Python的工具包[2] -> matplotlib图像绘制 -> matplotlib 库及使用总结
matplotlib图像绘制 / matplotlib image description 目录 关于matplotlib matplotlib库 补充内容 Figure和AxesSubplot的生 ...
- 【Windows编程】系列第五篇:GDI图形绘制
上两篇我们学习了文本字符输出以及Unicode编写程序,知道如何用常见Win32输出文本字符串,这一篇我们来学习Windows编程中另一个非常重要的部分GDI图形绘图.Windows的GDI函数包含数 ...
- 13个JavaScript图表(JS图表)图形绘制插件【转】
现在网络上又有越来越多的免费的(JS 图表)JavaScript图表图形绘制插件.我之前给一家网站做过复杂的图形,我们用的是 highchart.在那段时间,没有很多可供选择的插件.但现在不同了,很容 ...
- 推荐12个最好的 JavaScript 图形绘制库
众多周知,图形和图表要比文本更具表现力和说服力.图表是数据图形化的表示,通过形象的图表来展示数据,比如条形图,折线图,饼图等等.可视化图表可以帮助开发者更容易理解复杂的数据,提高生产的效率和 Web ...
- C#中的GDI+图形绘制方法
GDI+图形绘制方法 1.首先对于绘制图形,必须的先将命名空间导入:using System.Drawing.Drawing2D; 2.然后在一个事件中写入程序 首先先将Graphics这个对象实例化 ...
- cocos2d-x 图形绘制
转自:http://blog.csdn.net/zhy_cheng/article/details/8480048 图形绘制的话,在cocos2d-x自带的TestCpp里有,包括绘制点,直线,多边形 ...
- 图形绘制 Canvas Paint Path 详解
图形绘制简介 Android中使用图形处理引擎,2D部分是android SDK内部自己提供,3D部分是用Open GL ES 1.0.大部分2D使用的api都在android.grap ...
随机推荐
- 07 - JavaSE之容器
本章宗旨:1136 -- 1个图 1个类 3个知识点 6个接口 容器 J2SDK 所提供的容器 API 位于 java.util 包内. 容器 API 的类图如下: Collection 接口的子接口 ...
- CentOS 7.3.1611编译安装Nginx1.10.3+MySQL5.7.16+PHP7.1.2
前传: 1.CentOS 7.3.1611系统安装配置图解教程 http://www.jb51.net/os/RedHat/597874.html 2.CentOS服务器初始化设置 http://ww ...
- 【详解】ThreadPoolExecutor源码阅读(二)
系列目录 [详解]ThreadPoolExecutor源码阅读(一) [详解]ThreadPoolExecutor源码阅读(二) [详解]ThreadPoolExecutor源码阅读(三) AQS在W ...
- redis乐观锁(适用于秒杀系统)
redis事务中的WATCH命令和基于CAS的乐观锁 在Redis的事务中,WATCH命令可用于提供CAS(check-and-set)功能.假设我们通过WATCH命令在事务执行之前监控了多个Key ...
- 解决:git使用git push 命令跳出remote: Permission to A denied to B的问题
开始git上传项目,不料,在git push这一步骤发生了错误? remote: Permission to qwe2193066947/firstRepository.git denied to m ...
- PHP函数array_merge
今天因一个Bug重新审视了下array_merge()这个函数. 定义:array_merge — 合并一个或多个数组 规范:array array_merge(array $array1 [, ar ...
- java权限控制以及变量的初始化
知识是靠积累的,不断的温习会帮你让你遇到许多问题,解决完这些问题之后,会收获许多,233333333333333. 1.java访问控制符 2.java变量初始化问题 默认构造方法的名字与类名相同,它 ...
- win2d 图片水印
本文告诉大家如何使用 win2d 给图片加上水印. 安装 首先需要使用 Nuget 安装 win2d ,安装参见win10 uwp win2d 如果没有更新 dot net core 那么在运行可能会 ...
- [日常] Go语言圣经-匿名函数习题2
练习5.13: 修改crawl,使其能保存发现的页面,必要时,可以创建目录来保存这些页面.只保存来自原始域名下的页面.假设初始页面在golang.org下,就不 要保存vimeo.com下的页面. p ...
- CentOS7 mini安装后没有ifconfig命令的解决办法
在CentOS 最小化mini安装后,没有ifconfig命令,此时网卡也没有启动,所以无法yum安装net-tools. 下面三步解决此问题: 1 查看网卡名称 ip addr 2 启动网卡 ifu ...