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

        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()

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

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

相关文章

新特性Record最全用法总结---动力节点总结

目录 0、有用的新特性 一、Record 1.1、Record的介绍: 1.2、Record的声明: 1.3、Record的创建: 1.4、Record使用举例: 1.5、Record-实例方法、静态方法 1.6、Record-三类构造方法 1.6.1、紧凑型构造、定制构造方法&#…

MySQL的启动与连接

一、启动MySQL服务 方式一:进入计算机管理界面,点击【服务】,找到【MYSQL80】,右键开启即可 方式二:以管理员身份打开powershell, 输入命令net start MYSQL80. 二、连接MySQL服务 进入MySQL的安装目录中的bin目录&a…

【jetson笔记】torchaudio报错

原因是因为pip安装的包与jetson不兼容导致 自己安装或者cmake编译也会报错 需要拉取官方配置好的docker镜像 拉取docker镜像 具体容器可以看官网,按照自己需求拉取即可 https://catalog.ngc.nvidia.com/orgs/nvidia/containers/l4t-ml 如果其他包不需要只需要torc…

Supplier 惰性调用和 Future#get 同步等待调用结合

📖一、背景介绍 关于任务异步执行,两个点不可避免:异步结果和异步回调。 而在我的工程中有这样一段代码:使用 CompletableFuture 进行封装,可以异步执行,异步回调,通过 get() 等待异步任务的结…

ArcEngine添加点要素、线要素、面要素及学习总结

基于C#的ArcEngine二次开发教程(13):点、线、面要素的绘制_arcengine onmousedown-CSDN博客 https://www.cnblogs.com/cannel/p/11074343.html ArcEngine绘制点、线、多边形、矩形、圆形、椭圆的代码_arcengine 开发 生成矩形-CSDN博客 https…

《数学之友》期刊投稿方式投稿邮箱

《数学之友》是国家新闻出版总署批准的正规期刊,设置的栏目主要有:数学教育、教材研究、教学研究、数学建模、思想方法、数学学习、解题探索、CAI专题、复习考试、错例剖析等。从解题技巧方法、数学问题的溯源探微释疑到新课程背景下的教改教法教案&…

Qt事件处理,提升组件类

1.相关说明 1.提升组件QLabel的类&#xff0c;以实现双击功能 2.监控键盘事件&#xff0c;实现上下左右移动 3.鼠标点击获取坐标 2.相关界面 3.相关代码和操作 自定义类TMyLabel&#xff0c;父类为QLabel tmylabel.h #ifndef TMYLABEL_H #define TMYLABEL_H #include <QL…

thinkphp+vue+mysql旅游推荐攻略分享网站p0667

基于php语言设计并实现了旅游分享网站。该系统基于B/S即所谓浏览器/服务器模式&#xff0c;应用thinkphp框架&#xff0c;选择MySQL作为后台数据库。系统主要包括用户、景点信息、攻略分类、旅游攻略、门票购买、留言反馈、论坛管理、系统管理等功能模块。运行环境:phpstudy/wa…

CSC7225

CSC7225 为高性能电流模式 PWM 开关电源控制器&#xff0c;满足绿色环保标准&#xff1b;广泛适用于经济型开关电源&#xff0c;如 DVD、机顶盒、传真机、打印机、LCD 显示器等。CSC7225 采用 DIP-8 封装。 CSC7225主要特点  CSC7225内置 700V 高压功率开关管&#xff0c;外…

解读人工智能:AI时代的奇迹与担忧

随着科技的迅猛发展&#xff0c;人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;逐渐进入人们的视野。那么&#xff0c;什么是人工智能呢&#xff1f;简单来说&#xff0c;它是一种模拟人类智能的技术&#xff0c;通过计算机系统实现人类所具备的思…

GBASE南大通用数据库GBase 8s常见问题解析 -- 查找锁会话并解锁

本文摘自GBASE南大通用社区&#xff0c;by&#xff1a;wty&#xff0c;原文请点击&#xff1a;GBase 8s常见问题 -- 查找锁会话并解锁|GBASE社区|天津南大通用数据技术股份有限公司|GBASE-致力于成为用户最信赖的数据库产品供应商 问题现象 执行SQL时报错 244: Could not do…

6.PR-AUC机器学习模型性能的常用的评估指标

PR-AUC PR-AUC&#xff0c;即精确率-召回率曲线下的面积&#xff0c;是一种用于评估分类模型性能的指标。与ROC-AUC&#xff08;接收者操作特征曲线下的面积&#xff09;不同&#xff0c;PR-AUC关注的是精确率和召回率之间的关系&#xff0c;特别适用于不平衡数据集。 精确率…

【大数据】YARN调度器及调度策略

YARN调度器 YARN负责作业资源调度&#xff0c;在集群中找到满足业务的资源&#xff0c;帮助作业启动任务&#xff0c;管理作业的生命周期。 ​ YARN技术架构 ​ 目前&#xff0c;Hadoop作业调度器主要有三种&#xff1a;先进先出调度器&#xff08;First In First Out&…

雪花算法生成ID【细糠】

目录 &#x1f9c2;1.ID生成规则 &#x1f953;2.UUID &#x1f32d;3.数据库自增主键 &#x1f37f;4.雪花算法 1.ID生成规则 1. 全局唯一2.趋势递增3.单调递增4.信息安全5.含时间戳 2.UUID UUID(Universally Unique Identifier)的标准型式包含32个16进制数字,以连字…

Windows和Linux访问不了GitHub的解决方法

一、Windows访问不了GitHub 问题描述 使用Windows访问GitHub时&#xff0c;出现如下情况&#xff0c;显示无法访问。 解决方案&#xff1a; 打开域名查询网站&#xff1a;https://tool.chinaz.com/dns 输入GitHub的域名&#xff0c;点击立即检测。 出现如下页面&#xff0c…

【51单片机】点亮第一个LED灯

目录 点亮第一个LED灯单片机 GPIO 介绍GPIO 概念GPIO 结构 LED简介软件设计点亮D1指示灯LED流水灯 橙色 点亮第一个LED灯 单片机 GPIO 介绍 GPIO 概念 GPIO&#xff08;general purpose intput output&#xff09; 是通用输入输出端口的简称&#xff0c; 可以通过软件来控制…

泥石流监测识别摄像机

泥石流监测识别摄像机是一种基于图像识别技术的监测设备&#xff0c;主要用于实时监测和识别泥石流的发生和演变过程&#xff0c;以预警和减灾为目的。这种摄像机通常采用高清晰度摄像头和图像处理系统&#xff0c;能够实时拍摄泥石流事件&#xff0c;并对图像进行处理和分析&a…

Spring Boot 整合 Camunda 实现工作流

工作流是我们开发企业应用几乎必备的一项功能&#xff0c;工作流引擎发展至今已经有非常多的产品。最近正好在接触Camunda&#xff0c;所以来做个简单的入门整合介绍。如果您也刚好在调研或者刚开始计划接入&#xff0c;希望本文对您有所帮助。如果您是一名Java开发或Spring框架…

【C++ 自写String】

CString.hpp #include <iostream> #include <string.h>#pragma warning(disable:4996) using namespace std;class CString { private:int len;char* data;public:CString():data(nullptr),len(0) {cout << "0空构造\n";}CString(const char* _da…

爬取咚漫漫画

一、数据来源分析1.确定自己的需求&#xff1a;采集哪个网站的上面的数据内容正常的访问流程&#xff1a;1.选中漫画--->目录页面 &#xff08;请求列表页面&#xff0c;获取所有的章节链接&#xff09;2.选择一个漫画内容--->漫画页面 &#xff08;请求章节链接&#xf…