当前位置: 首页 > news >正文

数据分析之matplotlib.pyplot模块

  首先都得导模块。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from pandas import Series,DataFrame

  一、绘制单线图

  1,直线图

x=[1,2,3,4,5]
y=[2,4,6,8,10]
plt.plot(x,y)

  2,抛物线

x = np.arange(-np.pi,np.pi,0.2)
y = x**2
plt.plot(x,y)

  3,正弦图

x = np.arange(-np.pi,np.pi,0.2)
y = np.cos(x)
plt.plot(x,y)

  这里得到图形取决于x跟y的关系

  二、绘制多个曲线的图

  1,连续调用多次plot函数

plt.plot(x,y)
plt.plot(x+3,y+3)

  2,也可以在一个plot函数中传入多对x,y值

plt.plot(x,y,x+10,y+10)

  3,将多个曲线绘制在一个table区域中:对象形式创建表图

a=plt.subplot(row,col,loc)创建曲线图对象
a.plot(x,y)
ax1 = plt.subplot(2,2,1)
ax1.plot(x,y)
ax1.grid()
ax2 = plt.subplot(2,2,2)
ax2.plot(x,y)
ax3 = plt.subplot(2,2,3)
ax3.plot(x,y)
ax4 = plt.subplot(2,2,4)
ax4.plot(x,y)

  三、plt的一些样式设置

  1,设置网格线,plt.grid()

参数:
axis:控制方向
color:支持十六进制颜色
linestyle:线的形状
alpha:透明度

plt.grid(axis='both')
plt.plot(x,y)

  2,坐标轴界限

axis方法设置x,y轴刻度值的范围
plt.axis([xmin,xmax,ymin,ymax])

plt.axis([-6,6,-2,2])
plt.plot(x,y)

  通过设置plt.axis('off')可以把坐标轴刻度给关闭,我们就只会看到图,而看不到刻度

  3,设置画布比例

plt.figure(figsize=(a,b)) a:x刻度比例 b:y刻度比例 (2:1)表示x刻度显示为y刻度显示的2倍

plt.figure(figsize=(8,18))
plt.plot(x,y)

  4,设置x轴,y轴,图片的名称

plt.xlabel('xxx')
plt.ylabel('yyy')
plt.title('ttt')
plt.plot(x,y)

  5,设置图例

  5.1 分别在plot函数中添加label参数,在调用plt.legend()方法显示

plt.plot(x,y,label='aaa')
plt.plot(x+3,y+3,label='bbb')
plt.legend()

  5.2 直接在legend()方法中传入字符串列表

plt.plot(x,y,x+3,y+3)
plt.legend(['aaa','bbb'])

  5.3 还可以设置legend()方法的参数调整图例的位置和显示样式

loc参数用于设置图例标签的位置,一般在legend函数内

ncol控制图例中有几列,在legend中设置ncol
plt.plot(x,y,x+3,y+3)
plt.legend(['aaa','bbb'],loc=3,ncol=2)

  6,保存图片

使用figure对象的savefig函数来保存图片
fig = plt.figure()---必须放置在绘图操作之前
figure.savefig的参数选项
filename:含有文件路径的字符串或Python的文件型对象。图像格式由文件扩展名推断得出,例如,.pdf推断出PDF,.png推断出PNG (“png”、“pdf”、“svg”、“ps”、“eps”……)
dpi:图像分辨率(每英寸点数),默认为100
facecolor ,打开保存图片查看 图像的背景色,默认为“w”(白色)

fig = plt.figure()
plt.plot(x,y,x+3,y+3)
plt.legend(['aaa','bbb'],loc=3,ncol=2)
fig.savefig('./img.png',dpi=500)

  四、plot的参数设置

color或c:颜色,如‘r’或‘red’红色,‘g’绿色;也可以是十六进制,如'#eeefff';还可以RGB元祖,(0.2,0.3,0.4),值只能是0到1
alpha透明度
参数linestyle或ls线型
参数linewidth或lw线宽
marker点型
markersize点的大小

  五、直方图

是一个特殊的柱状图,又叫做密度图。
【直方图的参数只有一个x!!!不像条形图需要传入x,y】
plt.hist()的参数
bins  :直方图的柱数,可选项,默认为10
color  :指定直方图的颜色。可以是单一颜色值或颜色的序列。如果指定了多个数据集合,例如DataFrame对象,颜色序列将会设置为相同的顺序。如果未指定,将会使用一个默认的线条颜色
orientation  :通过设置orientation为horizontal创建水平直方图。默认值为vertical
data=[1,2,3,2,3,1,4,5,2,2]
plt.hist(data,bins=10)   #data数据时1到5,所以它会把1到5之间分成11个区域,把每个区域所包含数据的个数给统计出来

  六、条形图

- 参数:第一个参数是索引。第二个参数是数据值。第三个参数是条形的宽度
- width 纵向设置条形宽度
- height 横向设置条形高度
bar()纵向、barh()横向
data1=[2,4,1,5]
data2=[3,5,1,6]
plt.bar(data1,data2)

plt.barh(data1,data2)

  七、饼图

  饼图主要有两种,取决于第一个数据参数,首先数据的是一个列表,但列表中出现整数时,每块占比等于自身值除以所有值总和,这种情况下占比总和为1;当每个值都是0到1之间,而且总和小于等于1,那么每个的占比就是自身值,这种情况下,占比总和就不一定为1了。

  1,占比总和肯定为1的

plt.pie([2,4,6])   #表示的是2占12的比例,4占12的比例,6占12的比例

  2,占比总和不一定为1的

plt.pie([0.2,0.4,0.1])#表示0.1占10%,0.2占20%,0.4占40%

  3,属性设置

饼图阴影、分裂等属性设置
#labels参数设置每一块的标签;
#labeldistance参数设置标签距离圆心的距离(比例值)
#autopct参数设置比例值小数保留位(%.3f%%);
#pctdistance参数设置比例值文字距离圆心的距离
#explode参数设置每一块顶点距圆心的长度(比例值,列表);
#colors参数设置每一块的颜色(列表);
#shadow参数为布尔值,设置是否绘制阴影
#startangle参数设置饼图起始角度

  3.1 给每一块设置标签

arr=[2,4,6]
plt.pie(arr,labels=['a','b','c'])

  3.2 给标签设置离中心的距离

arr=[2,4,6]
plt.pie(arr,labels=['a','b','c'],labeldistance=0.5)

  3.3 数值表示每块的占比,并设置占比离中心的距离

arr=[2,4,6]
plt.pie(arr,labels=['a','b','c'],labeldistance=0.5,autopct='%.2f%%',pctdistance=0.8)

  3.4 设置每块顶点离中心的距离

arr=[2,4,6]
plt.pie(arr,labels=['a','b','c'],labeldistance=0.5,autopct='%.2f%%',pctdistance=0.8,explode=[0.2,0.4,0.3])

 

  八、散点图

散点图需要两个参数x,y,但此时x不是表示x轴的刻度,而是每个点的横坐标!
scatter()
x = np.random.random(size=(100))
y = np.random.random(size=(100))
plt.scatter(x,y)

  1,meshgrid()和散点图结合扩展

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

x1=np.arange(1,5,0.01)
y1=np.arange(1,5,0.01)

arr1=np.meshgrid(x1,y1)[0]
arr2=np.meshgrid(x1,y1)[1]

plt.scatter(arr1,arr2)

转载于:https://www.cnblogs.com/12345huangchun/p/10416957.html

相关文章:

  • C++基数排序
  • KindEditor 上传漏洞致近百个党政机关网站遭植入
  • MariaDB重置密码
  • 【ActiveMQ】- 发布/订阅模式
  • 效能改进之项目例会导入实践
  • iOS | NSProxy
  • Java I/O输入输出流
  • conda常用的命令
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 零代码玩转数据可视化
  • Dubbo 安装ZooKeeper环境
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • 程序猿福利来啦,神目AI开放平台免费送人脸识别SDK啦
  • java异常
  • Go test 命令行参数
  • [译]Python中的类属性与实例属性的区别
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • CAP 一致性协议及应用解析
  • Git的一些常用操作
  • js中的正则表达式入门
  • miaov-React 最佳入门
  • windows下mongoDB的环境配置
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 爱情 北京女病人
  • 不上全站https的网站你们就等着被恶心死吧
  • 力扣(LeetCode)22
  • 普通函数和构造函数的区别
  • 前端面试题总结
  • 前端性能优化——回流与重绘
  • 如何优雅地使用 Sublime Text
  • 深度学习中的信息论知识详解
  • 使用API自动生成工具优化前端工作流
  • 协程
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 在electron中实现跨域请求,无需更改服务器端设置
  • mysql面试题分组并合并列
  • 如何在招聘中考核.NET架构师
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (c语言)strcpy函数用法
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (二)构建dubbo分布式平台-平台功能导图
  • (六)Hibernate的二级缓存
  • (十)c52学习之旅-定时器实验
  • (一)SpringBoot3---尚硅谷总结
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转) 深度模型优化性能 调参
  • (转)详解PHP处理密码的几种方式
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)