机器学习 | 掌握Matplotlib的可视化图表操作

news2024/9/29 13:30:03

        Matplotlib是python的一个数据可视化库,用于创建静态、动态和交互式图表。它可以制作多种类型的图表,如折线图、散点图、柱状图、饼图、直方图、3D 图形等。以渐进、交互式方式实现数据可视化。当然博主也不能面面俱到的讲解到所有内容,详情请参考:官网

可视化是在整个数据挖掘的关键辅助工具,可以清晰的理解数据,从而调整我们的分析方法。将数据进行可视化,更直观的呈现。使数据更加客观、更具说服力。终端执行如下命令安装:

pip install matplotlib -i https://pypi.mirrors.ustc.edu.cn/simple

使用Matplotlib画图可以参考如下步骤:

# 导入matplotlib.pyplot模块
import matplotlib.pyplot as plt

# 图形绘制
plt.figure(figsize=(), dpi=) # 创建画布,figsize:图的长度;dpi:图的清晰度
plt.plot(x,y) # 绘制图像
plt.show() # 显示图像

基础折线显示:接下来我们工具Matplotlib画图步骤,使用jupyter notebook工具进行实现:

import matplotlib.pyplot as plt

# 准备数据
x = range(60)
y = [random.uniform(15, 18) for i in x] # 生成一个长度为 60 的随机浮点数列表,用于模拟某个过程在 60 分钟内的变化情况。

# 创建画布
plt.figure(figsize=(20,4),dpi=100)

# 绘制图像
plt.plot(x, y)

#图像显示
plt.show()

自定义刻度:如果我们想给x和y轴添加自定义刻度的话,可以采用如下的方式进行:

import matplotlib.pyplot as plt
import random
from pylab import mpl
# 设置显示中文字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]
# 设置正常显示符号
mpl.rcParams["axes.unicode_minus"] = False

# 准备数据
x = range(60)
y = [random.uniform(15, 18) for i in x] # 生成一个长度为 60 的随机浮点数列表,用于模拟某个过程在 60 分钟内的变化情况。

# 创建画布
plt.figure(figsize=(20,4),dpi=100)

# 绘制图像
plt.plot(x, y)

# 添加 x,y轴刻度
x_ticks_label = ["11点{}分".format(i) for i in x]
y_ticks = range(40)
# 修改x,y轴坐标刻度显示
plt.xticks(x[::5], x_ticks_label[::5])
plt.yticks(y_ticks[::5])

#图像显示
plt.show()

添加网格显示: 可以采用如下的步骤:

# 添加网格显示
plt.grid(True, linestyle = "--", alpha = 0.5) # linestyle 表示虚线 # alpha 表示透明度

添加描述信息:添加x轴、y轴描述信息及标题,通过fontsize参数可以修改图像中的字体大小

# 添加描述信息
plt.xlabel("时间", fontsize=15)
plt.ylabel("温度", fontsize=15)
plt.title("中午11点-12点某城市温度变化", fontsize=20)

图像保存:如果想对图像进行保存的话,可以采用如下的操作进行:

# 图像保存
plt.savefig("./test.png")

一个坐标轴绘制多个图像: 很简单,在准备多个数据之后绘制多次图像即可完成

# 准备数据
x = range(60)
y_shanghai = [random.uniform(15, 18) for i in x] 
y_beijin = [random.uniform(1,3) for i in x]

# 创建画布
plt.figure(figsize=(20,4),dpi=100)

# 绘制图像
plt.plot(x, y_shanghai)
plt.plot(x, y_beijin)

设置图形风格:我们可以通过如下的变量来设置图像的风格:

颜色字符:

r(红色)、g(绿色)、b(蓝色)、w(白色)、c(青色)、m(养红)、y(黄色)、k(黑色)

风格字符:

-(实线)、--(虚线)、-.(点划线)、:(点虚线)、' '(空格)

# 绘制图像
plt.plot(x, y_shanghai)
plt.plot(x, y_beijin, color='r', linestyle='--')

显示图例:通过显示图例将图形代表的含义表示出来:

# 绘制图像
plt.plot(x, y_shanghai, label="上海")
plt.plot(x, y_beijin, color='r', linestyle='--', label="北京")

# 显示图例
plt.legend(loc="best")

当然图例的位置我们可以通过设置loc的值来进行改变:

Stringbestupper rightupper leftlower leftlower rightrightcenter leftcenter rightlower centerupper centercenter
Code012345678910

多个坐标系实现绘图:通过如下代码我们可以实现多个坐标轴实现绘图:

import matplotlib.pyplot as plt
import random
from pylab import mpl
# 设置显示中文字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]
# 设置正常显示符号
mpl.rcParams["axes.unicode_minus"] = False

# 准备数据
x = range(60)
y_shanghai = [random.uniform(15, 18) for i in x] 
y_beijin = [random.uniform(1,3) for i in x]

# 创建画布
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(20, 4), dpi=100)
# 绘制图像
axes[0].plot(x, y_shanghai, label="上海")
axes[1].plot(x, y_beijin, color='r', linestyle='--', label="北京")

# 显示图例
axes[0].legend(loc=0)
axes[1].legend(loc=0)

# 添加 x,y轴刻度
x_ticks_label = ["11点{}分".format(i) for i in x]
y_ticks = range(40)
# 修改x,y轴坐标刻度显示 
axes[0].set_xticks(x[::5])
axes[0].set_yticks(y_ticks[::5])
axes[0].set_xticklabels(x_ticks_label[::5])
axes[1].set_xticks(x[::5])
axes[1].set_yticks(y_ticks[::5])
axes[1].set_xticklabels(x_ticks_label[::5])


# 添加网格显示 
axes[0].grid(True, linestyle = "--", alpha = 0.5) 
axes[1].grid(True, linestyle = "--", alpha = 0.5) 

# 添加描述信息
axes[0].set_xlabel("时间", fontsize=15)
axes[0].set_ylabel("温度", fontsize=15)
axes[0].set_title("中午11点-12点某城市温度变化", fontsize=20)
axes[1].set_xlabel("时间", fontsize=15)
axes[1].set_ylabel("温度", fontsize=15)
axes[1].set_title("中午11点-12点某城市温度变化", fontsize=20)

#图像显示
plt.show()

折线图实现:通过numpy实现折线图的方法:

import matplotlib.pyplot as plt
import numpy as np

# 准备数据
x = np.linspace(-10, 10, 1000)
y = np.sin(x)

# 创建画布
plt.figure(figsize=(20, 4), dpi=100)

# 绘制图像
plt.plot(x, y)

# 添加网格显示
plt.grid()

# 显示图像
plt.show()

常见图形绘制:接下来就其他常见的图形进行一个简单的代码演示:

首先我们先导入我们的库,接下来借助matplotlib库来实现各种图形的绘制

import matplotlib.pyplot as plt
from pylab import mpl
# 设置显示中文字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]
# 设置正常显示符号
mpl.rcParams["axes.unicode_minus"] = False
# 准备数据(散点图)
x = range(60)
y = [random.uniform(15, 18) for i in x] # 生成一个长度为 60 的随机浮点数列表,用于模拟某个过程在 60 分钟内的变化情况。
# 创建画布
plt.figure(figsize=(20,4),dpi=100)
# 绘制图像
plt.plot(x, y)
#图像显示
plt.show()

# 准备数据(柱状图)
movie_name = ['雷神3','正义联盟','误杀','全球风暴','雷神3','正义联盟','误杀','全球风暴'] # 电影名字
x = range(len(movie_name)) # 恒坐标
y = [12,21,21,31,12,21,21,31]# 票房数据
# 创建画布
plt.figure(figsize=(20, 4), dpi=100)
# 绘制图像
plt.bar(x, y, color=['b','r','g','y','c','m','k','g'], width=0.4)
# x轴坐标显示
plt.xticks(x, movie_name)
# 添加网格
plt.grid(linestyle="--", alpha=0.8)
# 添加标题
plt.title("电影票房收入对比", fontsize=20)
# 图像显示
plt.show()

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

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

相关文章

装完32G内存条 电脑飞跃提升!

我是南城余!阿里云开发者平台专家博士证书获得者! 欢迎关注我的博客!一同成长! 一名从事运维开发的worker,记录分享学习。 专注于AI,运维开发,windows Linux 系统领域的分享! 大家…

如何使用阿里云CDN服务?

如何使用阿里云CDN服务 一、开通阿里云CDN服务 注册自己阿里云账号,找到CDN服务,进行加速即可 二、配置域名信息 1、各配置参数的含义 添加加速域名: 如果需要使用CDN加速指定网站上的业务,则需要将该网站作为源站&#xff0…

ubuntu 20.04 使用 webrtc-streamer自动退出,报错GLIBC 问题解决方法

文章目录 前言Ubuntu 20.4中使用webrtc-streamer报错总结 前言 前端vue2 项目需要播放海康的视频流,本地启动起来了,现在需要的服务器上部署,服务器是Ubuntu 20.04,下面是部署时遇到的问题及解决方法,总耗时2天。 不知…

<蓝桥杯软件赛>零基础备赛20周--第16周--GCD和LCM

报名明年4月蓝桥杯软件赛的同学们,如果你是大一零基础,目前懵懂中,不知该怎么办,可以看看本博客系列:备赛20周合集 20周的完整安排请点击:20周计划 每周发1个博客,共20周。 在QQ群上交流答疑&am…

dolphinscheduler节点二次开发需要改动的部分

dolphinscheduler节点二次开发需要改动的部分 前端 在dolphinscheduler-ui/public/images/task-icons/目录下新增两个节点的logo图片,一个为激活状态的一个为非激活状态的,如下。 修改文件dolphinscheduler-ui/src/views/projects/task/constants/task…

git bash右键菜单失效解决方法

git bash右键菜单失效解决方法 这几天重新更新了git,直接安装新版本后,右键菜单失效找不到了。找了好几个博客,发现都不全面,最后总结一下解决方法: (1)按winr,输入regedit打开注册…

【学网攻】 第(3)节 -- 交换机配置聚合端口

文章目录 【学网攻】 第(1)节 -- 认识网络【学网攻】 第(2)节 -- 交换机认识及使用 前言 网络已经成为了我们生活中不可或缺的一部分,它连接了世界各地的人们,让信息和资源得以自由流动。随着互联网的发展,我们可以通过网络学习、工作、娱乐…

idea创建公用依赖包项目

创建parent项目 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/…

C++读取txt文件中的逐个字符

为了增加读取的灵活性&#xff0c;所以separator和filename都设置为在主函数中获取输入或者在函数中传参的视线方法 举个例子&#xff0c;txt文件如下&#xff1a; household;2;true; 首先声明一个读取数据的文件 void read_data_file(const string& filename,char se…

使用Fiddler进行弱网测试

测试APP、web经常需要用到弱网测试&#xff0c;也就是在信号差、网络慢的情况下进行测试。我们自己平常在使用手机APP时&#xff0c;在地铁、电梯、车库等场景经常会遇到会话中断、超时等情况&#xff0c;这种就属于弱网。 普通的弱网测试可以选择第三方工具对带宽、丢包、延时…

代码随想录算法训练营第29天(回溯算法05 | * 491.递增子序列 * 46.全排列 * 47.全排列 II

回溯算法part05 491.递增子序列解题思路与 90.子集II 不同的点回溯三部曲 46.全排列解题思路遇到的难点思考 47.全排列 II解题思路注意点拓展需要加深理解的点&#xff08;需复习 小总结 491.递增子序列 本题和大家刚做过的90.子集II非常像&#xff0c;但又很不一样&#xff0c…

简单实现网络编程

1. 前置知识 在学习网络编程前&#xff0c;我们需要先了解一些前置知识 1.1 客户端和服务器 在网络编程中&#xff0c;客户端和服务器是两个关键的角色。 客户端是发起连接并向服务器发送请求的一方。客户端通常是一个应用程序或设备&#xff0c;通过与服务器建立连接&…

线性表--链表--带头双向循环链表

目录 1.什么是带头双向循环链表&#xff1f; 2.实现增删查改功能&#xff1a; 2.1使用链表前必须对头节点初始化 2.2尾插 2.3尾删 2.4头插 2.5头删 2.8查找 2.7指定位置插入 2.8指定位置删除 2.9改变数据 ​编辑 2.10打印 2.11销毁 3.代码 1.什么是带头双向循环链表&…

docker 基础手册

文章目录 docker 基础手册docker 容器技术镜像与容器容器与虚拟机docker 引擎docker 架构docker 底层技术docker 二进制安装docker 镜像加速docker 相关链接docker 生态 docker 基础手册 docker 容器技术 开源的容器项目&#xff0c;使用 Go 语言开发原意“码头工人”&#x…

【C++练级之路】【Lv.7】【STL】vector类的模拟实现

快乐的流畅&#xff1a;个人主页 个人专栏&#xff1a;《C语言》《数据结构世界》《进击的C》 远方有一堆篝火&#xff0c;在为久候之人燃烧&#xff01; 文章目录 引言一、成员变量二、默认成员函数2.1 constructor2.2 destructor2.3 copy constructor2.4 operator 三、迭代器…

Vue3+TS+dhtmlx-gantt实现甘特图

实现样式 因为只做展示&#xff0c;所以实现很简单 实现功能 自定义列头增加斑马线&#xff0c;实际结束时间&#xff08;自定义实现&#xff09;自定义进度展示&#xff0c;根据层级让进度背景颜色变浅marker标记今天自定义提示框内容 实现 import { gantt } from "d…

某顺cookie逆向

目标网站:aHR0cHM6Ly9xLjEwanFrYS5jb20uY24v 这个网站是对cookie进行反爬虫的&#xff0c;可以看到cookie中有一个加密参数v 二、分析参数 可以使用hook方法&#xff0c;来hook住cookie中v生成的位置&#xff0c;可以直接在控制台中输入hook函数 (function () {use strict;v…

【详细解释深度学习图像分类检测评价指标】准确率Accuracy、精确率Precision、召回率Recall、mAP等(一文搞懂,建议收藏)

前言&#xff1a; &#x1f60a;&#x1f60a;&#x1f60a;欢迎来到本博客&#x1f60a;&#x1f60a;&#x1f60a; &#x1f31f;&#x1f31f;&#x1f31f; 本专栏主要是记录工作中、学习中关于AI(Deep Learning)相关知识并分享。 &#x1f60a;&#x1f60a;&#x1f…

Parallels Desktop 19 mac 虚拟机软件 兼容M1 M2

Parallels Desktop 19 for Mac 是一款适用于 macOS 的虚拟机软件。无需重启即可在 Mac 上运行 Windows、Linux 等系统&#xff0c;具有速度快、操作简单且功能强大的优点。包括 30 余种实用工具&#xff0c;可简化 Mac 和 Windows 上的日常任务。 软件下载&#xff1a;Parallel…

大模型时代的计算机系统革新:更大规模、更分布式、更智能化

编者按&#xff1a;2023年是微软亚洲研究院建院25周年。借此机会&#xff0c;我们特别策划了“智启未来”系列文章&#xff0c;邀请到微软亚洲研究院不同研究领域的领军人物&#xff0c;以署名文章的形式分享他们对人工智能、计算机及其交叉学科领域的观点洞察及前沿展望。希望…