数据分析——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 ...
随机推荐
- sql server 主从库设计和数据库镜像设计
sql server 主从设计可以通过sql server 的发布订阅实现,在大数据量的时候不要用快照发布,要使用事务发布的方式实现. 主从的设计后,要将数据库的读写分离,实现数据库效率的提示 而数据 ...
- c# winform as3相互调用
C#主要代码: 首先要添加COM组件-Shockwave Flash Object //接收flash发送过来的信息 private void axShockwaveFlash1_Fla ...
- Linux添加防火墙、iptables的安装和配置(亲测)
iptables基础 规则(rules)其实就是网络管理员预定义的条件,规则一般的定义为“如果数据包头符合这样的条件,就这样处理这个数据包”.规则存储在内核空间的信息 包过滤表中,这些规则分别指定了源 ...
- 老司机的应用级监控——spring actuator(转)
转自:https://www.jianshu.com/p/c043d3c71f47 什么是spring actuator? 这是一个研发老司机与运维同学都会非常喜欢的东西,随着点融集团的扩张,点融网的 ...
- Java设计模式学习记录-简单工厂模式、工厂方法模式
前言 之前介绍了设计模式的原则和分类等概述.今天开启设计模式的学习,首先要介绍的就是工厂模式,在介绍工厂模式前会先介绍一下简单工厂模式,这样由浅入深来介绍. 简单工厂模式 做法:创建一个工厂(方法或类 ...
- 【转】常见六大Web 安全攻防解析
原文转自:https://segmentfault.com/a/1190000018073845 作者:浪里行舟 在互联网时代,数据安全与个人隐私受到了前所未有的挑战,各种新奇的攻击技术层出不穷.如何 ...
- Spark2.1.0模型设计与基本架构(上)
随着近十年互联网的迅猛发展,越来越多的人融入了互联网——利用搜索引擎查询词条或问题:社交圈子从现实搬到了Facebook.Twitter.微信等社交平台上:女孩子们现在少了逛街,多了在各大电商平台上的 ...
- aspnetmvc和aspnetcoremvc的一些区别
1.路由 控制器添加特性: [RoutePrefix("api/controller")] = > [Route("api/[controller]&quo ...
- Mac下,(OS系统)IDEA 逆向工程,生成 hibernate 映射文件以及对应的javaBean(类似于eclipse)
找了好久,逆向工程生成javabean的,在Macbook的OS系统下使用idea生成. 参考博客:http://m.blog.csdn.net/quan20111992/article/detail ...
- 分机号-2015决赛C语言C组第一题
标题:分机号 X老板脾气古怪,他们公司的电话分机号都是3位数,老板规定,所有号码必须是降序排列,且不能有重复的数位.比如: 751,520,321 都满足要求,而, 766,918,201 就不符合要 ...