第二十四天-数据可视化Matplotlib

目录

1.介绍

2.使用

1. 安装:

2.创建简单图表

 3.图表类型

1.一共分为7类

2.变化

1.折线图

3.分布

​编辑

1.直方图

2.箱型图

4.关联

1. 散点图:

2.热力图:

5.组成

1.饼图

2.条形图

6.分组

1.簇型散点图

2.分组条形图

3.分组条形图不覆盖

7.偏差

1.发散条形图

2.面积图

8.排序


1.介绍

1. 数据可视化相关库

2.Matplotlib

1. 官网:http://matplotlib.org 

2.中文网:http://matplotlib.org.cn

2.使用

1. 安装:

pip install matplotlib

import matplotlib.pyplot as plt

2.创建简单图表

# 创建画板, 2行1列的图表 sharex:共享x轴,sharey:共享y轴
fig, axs = plt.subplots(2, 1)

# 生成数据
data = np.random.randn(100)

# 选取第一个画布,填充数据
axs[0].hist(data, bins=50, color="red")
axs[1].plot(data, color="red")


#参数设置
#设置标题
axs[0].set_title("chart1")
axs[1].set_title("chart2")
#设置x轴y轴名称
axs[0].set_xlabel("value")
axs[0].set_ylabel("freq")
axs[1].set_xlabel("index")
axs[1].set_ylabel("value")

#设置间距,避免名称重叠
fig.tight_layout()

plt.show()

 3.图表类型

1.一共分为7类

2.变化

1.折线图

   

# coding:utf-8

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

# 设置显示中文

mpl.rcParams["font.family"] = "FangSong"  # 设置字体
mpl.rcParams["axes.unicode_minus"] = False  # 正常显示负号

fig, ax = plt.subplots(1, 1)

# 模拟数据
datas = pd.date_range("2018-01-01", "2021-01-01", freq="M")


def get_price(size):
    return np.cumsum(np.random.randn(size))


price = [get_price(datas.size), get_price(datas.size), get_price(datas.size)]
data = pd.DataFrame(price).T

data.index = datas

#填充顔色,设置面积图
for p in price:
    plt.fill_between(datas, y1=p)

# 折线图
plt.plot(data)

# 设置x轴lable为斜线
fig.autofmt_xdate()

# 设置x,y轴坐标标签
ax.set_title("折线图")
fig.tight_layout()

plt.show()

3.分布

1.直方图
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np

mpl.rcParams["font.family"] = "FangSong"  # 设置字体
mpl.rcParams["axes.unicode_minus"] = False  # 正常显示负号

fig,ax=plt.subplots(1,1)

#模拟数据,5行5列数据
data=np.round(np.random.random(25).reshape(5,5),1)
#直方图
plt.hist(data)

#设置x,y轴坐标标签
ax.set_title("产品级别图")
#明确设置x,y轴数量

fig.tight_layout()


plt.show()

2.箱型图
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np

mpl.rcParams["font.family"] = "FangSong"  # 设置字体
mpl.rcParams["axes.unicode_minus"] = False  # 正常显示负号

fig,ax=plt.subplots(1,1)

#模拟数据,5行5列数据
data=np.round(np.random.random(25).reshape(5,5),1)
#直方图
plt.boxplot(data)

#设置x,y轴坐标标签
ax.set_title("箱型图")
#明确设置x,y轴数量

fig.tight_layout()


plt.show()

4.关联

使用:

1. 散点图:

坐标轴为数值型数据

import matplotlib.pyplot as plt
import numpy as np
#绘制散点图

x = np.random.randn(100)
y = np.random.randn(100)*1.5
plt.scatter(x=x,y=y,color="red",marker="+")
#限制x、y轴显示范围
plt.xlim(-2,2)
plt.ylim(-2,2)

#显示网格
plt.grid()

plt.show()

2.热力图:

类别型数据,体现的是2组变量的关联性

import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np

mpl.rcParams["font.family"] = "FangSong"  # 设置字体
mpl.rcParams["axes.unicode_minus"] = False  # 正常显示负号

fig,ax=plt.subplots(1,1)
# 绘制热力图
# 定义x轴,y轴内容
# x轴为 等级
x_lable = ["1级", "2级", "3级", "4级", "5级"]
# y轴为 产品
y_lable = ["产品1", "产品2", "产品3", "产品4", "产品5"]
#模拟数据,5行5列数据
data=np.round(np.random.random(25).reshape(5,5),1)
#热点图
plt.imshow(data)

#轮流锁定单元格,设置单元格文字
for i in  np.arange(len(x_lable)):
    for j in np.arange(len(y_lable)):
        plt.text(i,j,data[i][j],color="w",ha="center",va="center")

#设置x,y轴坐标标签
ax.set_title("产品级别图")
#明确设置x,y轴数量
ax.set_xticks(np.arange(len(x_lable)))
ax.set_yticks(np.arange(len(y_lable)))
ax.set_xticklabels(x_lable)
ax.set_yticklabels(y_lable)

fig.tight_layout()


plt.show()

5.组成

1.饼图
# coding:utf-8

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

# 设置显示中文

mpl.rcParams["font.family"] = "FangSong"  # 设置字体
mpl.rcParams["axes.unicode_minus"] = False  # 正常显示负号

fig, ax = plt.subplots(1, 1)

# 模拟数据
data = [0.1, 0.2, 0.3, 0.4]

#绘制饼图,labels为每一项的名称 explode:突出值 autopct:格式化百分比, textprops字体格式
plt.pie(data,labels=["a","b","c","d"],explode=[0,0.2,0,0],autopct="%.1f%%",shadow=True,textprops={"size":"small"})

# 设置x轴lable为斜线
fig.autofmt_xdate()

# 设置x,y轴坐标标签
ax.set_title("折线图")
fig.tight_layout()

plt.show()

2.条形图
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
import pandas as pd

# 设置显示中文

mpl.rcParams["font.family"] = "FangSong"  # 设置字体
mpl.rcParams["axes.unicode_minus"] = False  # 正常显示负号

fig, ax = plt.subplots(1, 1)

# 模拟数据
data = [0.1, 0.2, 0.3, 0.4]
labels = ["a", "b", "c", "d"]
# 绘制条形图  color:设置条形颜色
plt.bar(labels, data, color=["r", "y", "b", "g"])

# 显示条形上的文字
for x, y in zip(labels, data):
    plt.text(x, (y / 2), y)
# 设置x轴lable为斜线
fig.autofmt_xdate()

# 设置x,y轴坐标标签
ax.set_title("条形图")
fig.tight_layout()

plt.show()

6.分组

1.簇型散点图
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
import pandas as pd

# 设置显示中文

mpl.rcParams["font.family"] = "FangSong"  # 设置字体
mpl.rcParams["axes.unicode_minus"] = False  # 正常显示负号

fig, ax = plt.subplots(1, 1)

# 模拟数据
a_x=np.random.random(100)+1
a_y=np.random.random(100)+1.5
a_x1=np.random.random(200)+2.1
a_y1=np.random.random(200)+1.7

#绘制散点图分组
plt.scatter(a_x,a_y)
plt.scatter(a_x1,a_y1)
# 设置x轴lable为斜线
fig.autofmt_xdate()

fig.tight_layout()

plt.show()

2.分组条形图
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
import pandas as pd

# 设置显示中文

mpl.rcParams["font.family"] = "FangSong"  # 设置字体
mpl.rcParams["axes.unicode_minus"] = False  # 正常显示负号

fig, ax = plt.subplots(1, 1)

# 模拟数据
x=["a","b","c","d"]
y1=[1,2,3,4]
y2=[4,3,2,1]
#绘制图形
plt.bar(x,y1)
plt.bar(x,y2)

fig.autofmt_xdate()

fig.tight_layout()

plt.show()

3.分组条形图不覆盖
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
import pandas as pd

# 设置显示中文

mpl.rcParams["font.family"] = "FangSong"  # 设置字体
mpl.rcParams["axes.unicode_minus"] = False  # 正常显示负号

fig, ax = plt.subplots(1, 1)

# 模拟数据

axis1=[1,2,3,4]
axis2=[1.2,2.2,3.2,4.2]

y1=[1,2,3,4]

y2=[4,3,2,1]
#绘制图形
plt.bar(axis1,y1,width=0.2)
plt.bar(axis2,y2,width=0.2)

fig.autofmt_xdate()

fig.tight_layout()

plt.show()

7.偏差

1.发散条形图
# coding:utf-8

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

# 设置显示中文

mpl.rcParams["font.family"] = "FangSong"  # 设置字体
mpl.rcParams["axes.unicode_minus"] = False  # 正常显示负号

fig, ax = plt.subplots(1, 1)

# 模拟数据
#绘制
y=["a","b","c","d"]
data=[-1,2,0.5,4]
data.sort()
plt.hlines(y=y,xmin=0,xmax=data,colors=["r","b","y","g"])
#设置网格
plt.grid(linestyle="--",alpha=0.5)
# 设置x轴lable为斜线
fig.autofmt_xdate()


fig.tight_layout()

plt.show()

2.面积图
mpl.rcParams["font.family"] = "FangSong"  # 设置字体
mpl.rcParams["axes.unicode_minus"] = False  # 正常显示负号

fig, ax = plt.subplots(1, 1)

# 模拟数据
#绘制
datas = pd.date_range("2018-01-01", "2021-01-01", freq="M")

def get_price(size):
    return np.cumsum(np.random.randn(size))

price ={"price":get_price(datas.size)}

pd=pd.DataFrame(index=datas,data=price)

plt.plot(pd["price"])
#填充面积颜色
plt.fill_between(pd.index,pd["price"],0)

# 设置x轴lable为斜线
fig.autofmt_xdate()

fig.tight_layout()

8.排序

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/463643.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【ollama】linux、window系统更改模型存放位置,全网首发2024!

首先是window系统 so easy 直接进入系统环境变量添加就行 其次是linux系统 全靠自己试出来的,去Ollama官网找半天文档不知道在哪,而且linux也没有说:【 https://github.com/ollama/ollama/blob/main/docs/README.md https://github.com/ollama/ollama/blob/main/docs/li…

Ubuntu 如何安装 Beyond Compare?

Ubuntu20.04安装Beyond Compare 4.3.7 一、官网下载方式一:方法二:使用 .deb 包安装 二、安装相关依赖和bcompare三、破解常见错误解决方法 ) 文件比较工具Beyond Compare是一套由Scooter Software推出的文件比较工具。主要用途是对比两个文件夹或者文件…

HCIA——30奈奎斯特定理、香农定理

学习目标: 计算机网络 1.掌握计算机网络的基本概念、基本原理和基本方法。 2.掌握计算机网络的体系结构和典型网络协议,了解典型网络设备的组成和特点,理解典型网络设备的工作原理。 3.能够运用计算机网络的基本概念、基本原理和基本方法进行…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:TextTimer)

通过文本显示计时信息并控制其计时器状态的组件。 说明: 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 无 接口 TextTimer(options?: TextTimerOptions) 参数: 参数名参数类型…

Kotlin进阶之协程从入门到放弃

公众号「稀有猿诉」 原文链接 Kotlin进阶之协程从入门到放弃 协程Coroutine是最新式的并发编程范式,它是纯编程语言层面的东西,不受制于操作系统,轻量级,易于控制,结构严谨,不易出错,易于…

深入浅出理解 AI 生图模型

目录 引言 一、Stable Diffusion原理 首先 随后 最后 二、DDPM模型 1 资料 2 原理 扩散过程 反向过程 3 公式结论 三、优缺点 优点: 缺点: 四、改进与完事 LDM代表作 原理概括 Latent Space(潜空间) 五、总结 引…

提高安全投资回报:威胁建模和OPEN FAIR™风险分析

对大多数人和企业来说,安全意味着一种成本。但重要的是如何获得适合的量,而不是越多越好。然而,你如何决定什么时候可以有足够的安全性,以及你如何获得它?则完全是另一回事。 该篇文章是由The Open Group安全论坛主办&…

【PyTorch】进阶学习:一文详细介绍 load_state_dict() 的应用场景、实战代码示例

【PyTorch】进阶学习:一文详细介绍 load_state_dict() 的应用场景、实战代码示例 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入…

vb.net+zxing.net随机彩色二维码、条形码

需要zxing库支持ZXing.NET Generate QR Code & Barcode in C# Alternatives | IronBarcode 效果图: 思路:先生成1个单位的二维码,然后再通过像素填充颜色,颜色数组要通过洗牌算法 洗牌算法 Dim shuffledCards As New List(…

C#控制台贪吃蛇

Console.Write("");// 第一次生成食物位置 // 随机生成一个食物的位置 // 食物生成完成后判断食物生成的位置与现在的蛇的身体或者障碍物有冲突 // 食物的位置与蛇的身体或者障碍物冲突了,那么一直重新生成食物,直到生成不冲突…

GenAI开源公司汇总

主要分类如下: 1. 基础模型:这些是机器学习和AI的核心模型提供商,它们提供基础的算法和技术支持。 2. 模型部署与推断:提供云服务和计算资源,帮助用户部署和运行AI模型。 3. 开发者工具:支持AI/ML的开发…

【网络原理】TCP 协议中比较重要的一些特性(三)

目录 1、拥塞控制 2、延时应答 3、捎带应答 4、面向字节流 5、异常情况处理 5.1、其中一方出现了进程崩溃 5.2、其中一方出现关机(正常流程的关机) 5.3、其中一方出现断电(直接拔电源,也是关机,更突然的关机&am…

拜占庭将军问题相关问题

1、拜占庭将军问题基本描述 问题 当我们讨论区块链共识时,为什么会讨论拜占庭将军问题? 区块链网络的本质是一个分布式系统,在存在恶意节点的情况下,希望 整个系统当中的善良节点能够对于重要的信息达成一致,这个机…

Python语言基础与应用-北京大学-陈斌-P40-39-基本扩展模块/上机练习:计时和文件处理-给算法计时-上机代码

Python语言基础与应用-北京大学-陈斌-P40-39-基本扩展模块/上机练习:计时和文件处理-给算法计时-上机代码 上机代码: # 基本扩展模块训练 给算法计时 def factorial(number): # 自定义一个计算阶乘的函数i 1result 1 # 变量 result 用来存储每个数的阶…

第十三篇:复习Java面向对象

文章目录 一、面向对象的概念二、类和对象1. 如何定义/使用类2. 定义类的补充注意事项 三、面向对象三大特征1. 封装2. 继承2.1 例子2.2 继承类型2.3 继承的特性2.4 继承中的关键字2.4.1 extend2.4.2 implements2.4.3 super/this2.4.4 final 3. 多态4. 抽象类4.1 抽象类4.2 抽象…

微信小程序关闭首页广告

由于之前微信小程序默认开启了首页广告位。导致很多老人误入广告页的内容,所以想着怎么屏蔽广告。好家伙,搜索一圈,要么是用户版本的屏蔽广告,或者是以下一个模棱两可的答案,要开发者设置一下什么参数的,如…

ZK vs FHE

1. 引言 近期ZAMA获得7300万美金的投资,使得FHE获得更多关注。FHE仍处于萌芽阶段,是未来隐私游戏规则的改变者。FHE需与ZK和MPC一起结合,以发挥最大效用。如: Threshold FHE:将FHE与MPC结合,实现信任最小…

Kafka MQ 生产者

Kafka MQ 生产者 生产者概览 尽管生产者 API 使用起来很简单,但消息的发送过程还是有点复杂的。图 3-1 展示了向 Kafka 发送消息的主要步骤。 我们从创建一个 ProducerRecord 对象开始,ProducerRecord 对象需要包含目标主题和要发送的内容。我们还可以…

Python基础(七)之数值类型集合

Python基础(七)之数值类型集合 1、简介 集合,英文set。 集合(set)是由一个或多个元素组成,是一个无序且不可重复的序列。 集合(set)只存储不可变的数据类型,如Number、…

高德 Android 地图SDK 去除logo

问题 高德 Android 地图SDK 去除logo 详细问题 笔者进行Android 项目开发,接入高德地图SDK。但是默认在地图左下角有高德地图logo,现需要去除该logo 期望效果 解决方案 import com.amap.api.maps.UiSettings; UiSettings settingsmMapView.getMap(…