数据分析——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 ...
随机推荐
- Spring的JavaMail实现异步发送邮件
具体背景就不说了,可以网上搜索相关知识,或者直接看Sping MailSender的官坊网页.这里就直接实战了(Java实现异步发送电子邮件,包含中文无乱码). Maven: <dependen ...
- 32-hadoop-hbase调优
1, 数据膨胀后, 才对region进行分区, 效率比较低, 所以需要预创建region, 进行负载均衡写入 package com.wenbronk.hbase; import org.apache ...
- 误删centos的ps命令,恢复
脑子短路将/bin/ps文件删除.发现ps命令无法用了.下面是恢复方法 1,执行rpm -qf /bin/ps 查看ps命令所需要的rpm包 [root@iZm5e727lmif5lZ ~]# rpm ...
- POJ 2419 Forests(模拟)
题目链接: https://cn.vjudge.net/problem/POJ-2419 题目描述: If a tree falls in the forest, and there's nobody ...
- POJ 1740(构造博弈)
题目链接: https://cn.vjudge.net/problem/POJ-1740 题目描述: Alice and Bob decide to play a new stone game.At ...
- Windows程序
Windows程序是事件驱动的,对于一个窗口,它的大部分例行维护是由系统维护的.每个窗口都有一个消息处理函数.在消息处理函数中,对传入的消息进行处理.系统内还有它自己的缺省消息处理函数. 客户 ...
- JUC源码1-原子量
什么是原子量,原子量就是一次操作,要么成功,要么失败.比如java中的i++ 或i-- , 不具备原子性,每次读取的值都是不一样的,探究其原因,x86体系中,他的总线是32位的,i++的操作指令必须是 ...
- 常用正则表达式:手机、电话、邮箱、身份证、IP地址、网址、日期等
转载源:http://blog.csdn.net/lun379292733/article/details/8169807 <script type="text/JavaScript& ...
- 【ibatis】IBatis的SQL批量操作
1.Ibatis批量添加(传入class的list即可) <insert id="Add" resultMap="Select" parameterCla ...
- tomcat日志切割和定期删除(转载)
tomcat日志切割和定期删除 在tomcat的软件环境中,如果我们任由日志文件无限增长,总有一天会将磁盘占满的(废话).特别是在日志文件增长速度很快的一些情况下,按日志切割日志文件并删除,就是一件很 ...