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

news2024/11/24 2:24:31

目录

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.排序

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JMeter 面试题及答案整理,最新面试题

JMeter中如何进行性能测试的规划和设计? 进行JMeter性能测试的规划和设计主要遵循以下几个步骤: 1、确定测试目标: 明确性能测试的目的和目标,比如确定要测试的系统性能指标(如响应时间、吞吐量、并发用户数等&#…

从大模型到Agentscope——分布式Multi-Agent应用开发与部署

目录 Why需要分布式 案例 多进程的分布书版本能快速提升速度 分布式的挑战 AgentScope分布式解决 方案 实现RPC Agent 基于Actor模式的并行调度缺点:需要Agent内部决定消息传递目标 被调用的Agent立即返回占位符placeholder to_dist: 开启自动将单机进行扩展…

图解缓存淘汰算法 LRU、LFU | 最近最少使用、最不经常使用算法 | go语言实现

写在前面 无论是什么系统,在研发的过程中不可避免的会使用到缓存,而缓存一般来说我们不会永久存储,但是缓存的内容是有限的,那么我们如何在有限的内存空间中,尽可能的保留有效的缓存信息呢? 那么我们就可以…

代码算法训练营day8 | 344.反转字符串、 541. 反转字符串II、卡码网:54.替换数字、151.翻转字符串里的单词、卡码网:55.右旋转字符串

day8: 344.反转字符串541. 反转字符串II卡码网:54.替换数字151.翻转字符串里的单词卡码网:55.右旋转字符串 344.反转字符串 题目链接 状态:ok 文档:programmercarl.com 思路: 对于这道题目可以选择直接用C里的一个库函…

<Linux> 线程的同步与互斥

目录 前言: 一、资源共享问题 (一)多线程并发访问 (二)临界资源与临界区 (三)“锁” 是什么 二、多线程抢票场景 (一)并发抢票 (二)并发访…

基于Matlab的车牌识别算法,Matlab实现

博主简介: 专注、专一于Matlab图像处理学习、交流,matlab图像代码代做/项目合作可以联系(QQ:3249726188) 个人主页:Matlab_ImagePro-CSDN博客 原则:代码均由本人编写完成,非中介,提供…

Oracle 临时表空间管理(Temporary Tablespace)

Oracle临时表空间(Temporary Tablespace)主要用来存储数据库运行中产生的临时对象,例如SQL排序结果集,临时表等,这些对象的生存周期只有会话。本文总结了Oralce中涉及临时表空间的管理和优化操作。 目录 一、临时表空…

Stargo 管理部署 Starrocks 集群

配置主机间 ssh 互信 ssh-copy-id hadoop02 ssh-copy-id hadoop03配置系统参数 ############################ Swap检查 ############################ echo 0 | sudo tee /proc/sys/vm/swappiness########################### 内核参数检查 ########################## echo…

全国农产品价格分析预测可视化系统设计与实现

全国农产品价格分析预测可视化系统设计与实现 【摘要】在当今信息化社会,数据的可视化已成为决策和分析的重要工具。尤其是在农业领域,了解和预测农产品价格趋势对于农民、政府和相关企业都至关重要。为了满足这一需求,设计并实现了全国农产…

JS引用类型

在JavaScript中,除了基本类型(如字符串、数字、布尔值、null和undefined)之外,还有引用类型。引用类型包括对象、数组和函数。它们在内存中的存储方式与基本类型不同,因为它们在内存中存储的是对实际数据的引用&#x…

LeetCode 7 / 100

哈希表、双指针 哈希表两数之和字母异位词分组最长连续序列 双指针移动零盛最多水的容器三数之和接雨水 LeetCode 1.两数之和 LeetCode 49. 字母异位词分组 LeetCode 128. 最长连续序列 LeetCode [283. 移动零](https://leetcode.cn/problems/move-zeroes/?envTypestudy-plan-…

计算机网络-概述

文章目录 1.2 因特网概述1.2.1 网络、互连网(互联网)和因特网1.2.2 因特网发展的三个阶段1.2.4 因特网的组成 1.3 三种交换方式1.3.1 电路交换1.3.2 分组交换1.3.3 报文交换1.3.4 三种方式对比 1.4 计算机网络的定义1.5 计算机网络的性能指标1.5.1 速率1…

DDR协议基础进阶(三)——(基本功能、初始化、MR寄存器)

DDR协议基础进阶(三)——(基本功能、初始化、MR寄存器) 一、DDR基本功能 DDR基本功能主要包括: 8-bit prefetch预取——8-bit,是指8位数据,即8倍芯片位宽的数据。由于DDR内部数据传输是32bit…

Spring Web MVC入门(2)

学习Spring MVC Postman介绍 在软件工程中, 我们需要具有前后端分离的思想, 以降低耦合性. 但是在测试后端代码时,我们还得写前端代码测试,这是个令人头疼的问题. 那么我们如何测试自己的后端程序呢, 这就用到了一个工具: Postman. 界面介绍: 传参的介绍 1.普通传参, 也就…

Android Studio 打包 Maker MV apk 详细步骤

一.使用RPG Make MV 部署项目,获取项目文件夹 这步基本都不会有问题: 二.安装Android Studio 安装过程参考教材就行了: https://blog.csdn.net/m0_62491877/article/details/126832118 但是有的版本面板没有Android的选项(勾…

SpringAI——Java生态接入LLM

最近,Spring官网发布了SpringAI,可点此查看https://spring.io/blog/2024/03/12/spring-ai-0-8-1-released,对于SpringAI的介绍,可看官方文档:https://spring.io/projects/spring-ai#overview。 本文将使用SpringAI配合…

QML 布局管理器之GridLayout

一.QML GridLayout介绍 在QML中,GridLayout是一种用于布局元素的容器。它允许您以网格形式组织和排列元素。要使用rowspan、columnspan、layoutFillWidth和rowSpacing属性,您可以将一个元素跨越多行和多列,并填充整个宽度,同时设置…

Python Web开发记录 Day12:Django part6 用户登录

名人说:东边日出西边雨,道是无晴却有晴。——刘禹锡《竹枝词》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 1、登录界面2、用户名密码校验3、cookie与session配置①cookie与session②配置…

unity学习(60)——选择角色界面--MapHandler2-MapHandler.cs

1.新建一个脚本&#xff0c;里面有static变量loadingPlayerList using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace Assets.Scripts.Model {internal class LoadData{public static List<Pl…

Qt QTableWidget 实现行选中及行悬浮高亮

表格整行的 selected、hover 高亮需求很常见&#xff0c;但使用 Qt 提供的开箱即用的方法根本无法实现这个需求&#xff08;至少在当前的时间节点是不行的&#xff09;&#xff1b;想要实现这个效果必须要费一点点力气&#xff0c;我们尽量选择较为简单的方法。 话不多说&…