python机器学习6-----图表函数库Matplotlib

news2024/12/23 3:58:14

1.Matplotlib介绍

        Matplotlib是Python著名的绘图函数库,它提供了一整套图表的API,可以将数据绘制成图表,而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。Matplotlib是很大的Python库,而pyplot是Matplotlib中的一个模块,本章的绘图几乎都是通过pyplot来完成的。

2.画线

import matplotlib.pyplot as plt 
plt.plot([1,2,3,4])
plt.ylabel('some numbers')
plt.show()

3.画点

 

import matplotlib.pyplot as plt

# 定义x和y的数据点
x = [1, 2, 3, 4]
y = [1, 4, 9, 16]

# 绘制图形,使用标准颜色名称 'green' 代替十六进制颜色代码
plt.plot(x, y, 'red')

# 设置x轴和y轴的范围
plt.xlim(0, 6)
plt.ylim(0, 20)

# 显示图形
plt.show()


import matplotlib.pyplot as plt
t=[1,2,3,4]
plt.plot(t,t,'r--')
plt.plot(t,[2,4,6,8],'bs')
plt.plot(t,[3,6,9,12],'g^')
plt.plot(t,[4,8,12,16],'k:')
plt.show()

 4.画面切割

        需要在相同窗口中显示不同的图表时就要使用subplot函数。

 subplot(nrows, ncols, index, facecolor)

参数:

· nrows:要绘制的图表,有上下几个图表。

· ncols:要绘制的图表,有左右几个图表。

· index:第几个。

· facecolor:颜色。

import matplotlib.pyplot as plt
t1=[1,2,3,4]
t2=[2,4,6,8]
plt.subplot(2,1,1,facecolor='y')
plt.plot(t1,t2,'ro')
plt.subplot(2,2,3,facecolor='k')
plt.plot(t2,t2,'g--')
plt.subplot(2,2,4)
plt.plot(t2,t2,'b|')
plt.show()

   程序中第4行subplot(2,1,1,facecolor='y')也可以写成subplot(211)。subplot(211)中数字211的意思是指2个上下和1个左右,使用2×1中的第1个局部,也就是上方全部的结果。

  程序中第7行plt.subplot(2,2,3,facecolor='k')也可以写成subplot(223)。subplot(223)中数字223的意思是指有2×2=4个局部,即2个上下和2个左右,所以画面有4个局部,然后是使用其中的第3个局部,依照上、下、左、右的顺序来计算,所以会呈现下方左边的结果。

5.显示图片

        Matplotlib图表中也能显示图片。

import matplotlib.pyplot as plt
import matplotlib.image as mpimg
t=[10,20,30,40]
plt.xlabel('xlabel')
plt.ylabel('ylabel')
plt.title('title')
img=mpimg.imread("C:\\Users\\nsy\\Pictures\\Screenshots\\7.15.png")
imgplot=plt.imshow(img)
plt.plot(t,t,'r--')
plt.show()

6.在窗口程序中显示图表

        通过实例说明如何结合Tkinter窗口和Matplotlib显示图表。为达到这个目的,需要使用控件matplotlib.backends.backend_tkagg来完成位置和窗口位置摆放的功能。

        

try:
    import Tkinter as tk
except ImportError:
    import tkinter as tk
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
win=tk.Tk()
fig=plt.Figure()
canvas=FigureCanvasTkAgg(fig,win)
canvas.get_tk_widget().pack()
ax=fig.add_subplot(111)
x=[5,6,7,8]
ax.plot(x)
tk.mainloop()

         GUI组件如何与Matplotlib图表交互?新增一个滑动组件Slider,只要用户移动滑动组件,即改变图表的数字,进而改变Matplotlib图表。

try:
    import Tkinter as tk
except ImportError:
    import tkinter as tk
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
win=tk.Tk()
fig=plt.Figure()
canvas=FigureCanvasTkAgg(fig,win)
canvas.get_tk_widget().pack()
ax=fig.add_subplot(111)
fig.subplots_adjust(bottom=0.25)
x=[5,6,7,8]
ax.plot(x,x)
ax.axis([0,10,0,10])
ax_time=fig.add_axes([0.12,0.1,0.78,0.03])
Slider1=Slider(ax_time,'Time',0,30,valinit=0)
def update(val):
    pos=Slider1.val
    ax.axis([pos,pos+10,0,10])
    fig.canvas.draw_idle()
Slider1.on_changed(update)
tk.mainloop()

 

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

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

相关文章

Day53:图论 岛屿数量 岛屿的最大面积

99. 岛屿数量 时间限制:1.000S 空间限制:256MB 题目描述 给定一个由 1(陆地)和 0(水)组成的矩阵,你需要计算岛屿的数量。岛屿由水平方向或垂直方向上相邻的陆地连接而成,并且四周…

MBTI答题应用小程序

源代码 calmthink/mbti小程序 (gitee.com) 实现方案 题目结构 [{"options": [{"result": "I","value": "独自工作","key": "A"},{"result": "E","value": "与他…

OpenCV开发笔记(七十八):在ubuntu上搭建opencv+python开发环境以及匹配识别Demo

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/140435870 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…

神经网络替代密度泛函理论!清华研究组发布通用材料模型 DeepH,实现超精准预测

在材料设计中,了解其电子结构与性质是预测材料性能、发现新材料、优化材料性能的关键。过去,业界广泛使用密度泛函理论 (DFT) 来研究材料电子结构和性质,其实质是将电子密度作为分子(原子)基态中所有信息的载体&#x…

【C语言】全面解析冒泡排序

文章目录 什么是冒泡排序?冒泡排序的基本实现代码解释冒泡排序的优化冒泡排序的性能分析冒泡排序的实际应用结论 在C语言编程中,排序算法是一个非常基础且重要的概念。冒泡排序作为最简单、最易理解的排序算法之一,广泛应用于各种编程教学和实…

bash: ip: command not found

输入: ip addr 报错: bash: ip: command not found 报错解释: 这个错误表明在Docker容器中尝试执行ip addr命令时,找不到ip命令。这通常意味着iproute2包没有在容器的Linux发行版中安装或者没有正确地设置在容器的环境变量PA…

基于hive数据库的泰坦尼克号幸存者数据分析

进入 ./beeline -u jdbc:hive2://node2:10000 -n root -p 查询 SHOW TABLES; 删除 DROP TABLE IF EXISTS tidanic; 上传数据 hdfs dfs -put train.csv /user/hive/warehouse/mytrain.db/tidanic 《泰坦尼克号幸存者数据分析》 1、原始数据介绍 泰坦尼克号是当时世界上…

Python PDF文件的加密和水印处理使用详解

概要 在日常工作中,处理PDF文件是非常常见的需求。为了保护PDF文件的内容,我们可能需要对其进行加密。同时,为了防止文件被未经授权的复制和使用,添加水印也是一种有效的方法。本文将详细介绍如何使用Python对PDF文件进行加密和添加水印的操作,包含详细的示例代码,帮助全…

Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点

章节内容 上节我们完成了如下的内容: ZK创建节点:永久、顺序、临时ZK读取节点:列出、查看、更新ZK删除节点 背景介绍 这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。 之前已经…

Ti_MSPM0开发环境搭建(keil版本)

一:基础软件下载 开发MSPM0的软件组合方式有很多,但是最常见的就是keilsysSDK或者CCSsysSDK,这里先明确一下几个软件是干什么的,SDK文件里面提供了Ti的案例,驱动等我们可以理解为他的开发环境都是基于SDK的所以这个SDK是必须要下载…

图像边缘检测中Sobel算子的原理,并附OpenCV和Matlab的示例代码

Sobel算子是一种用于图像边缘检测的离散微分算子。它结合了图像的平滑处理和微分计算,旨在强调图像中强度变化显著的区域,即边缘。Sobel算子在图像处理中被广泛使用,特别是在计算机视觉和图像分析领域。 Sobel算子的原理 Sobel算子主要用于计…

R包:TreeAndLeaf二分类树构建R包

介绍 树形图显示了二叉树,重点是表示树元素之间的层次关系。树状图包含节点、分支(边)、根和叶。根是分支和节点的来源,指示到叶的方向,即终端节点。 树形图布局的大部分空间用于排列分支和内部节点,留给叶子的空间有限。对于大…

macOS 安装软件提示 “已损坏,无法打开。 您应该将推出磁盘映像” 或 “已损坏,无法打开。 您应该将它移到废纸篓”,解决办法

本文以 Pulsar Assistant 软件为例进行介绍,Redisant 系列的其他软件同理,只需要根据不同软件修改下面命令中的软件名即可。 在 macOS 系统上安装 下载最新的.dmg包,双击打开安装程序,将软件拖动到下方的程序目录即可。 安装时报…

【问题记录】配置mongodb副本集实现数据流实时获取

配置mongodb副本集实现数据流实时获取 前言操作步骤1. docker拉取mongodb镜像2. 连接mongo1镜像的mongosh3. 在mongosh中初始化副本集 前言 由于想用nodejs实现实时获取Mongodb数据流,但是报错显示需要有副本集的mongodb才能实现实时获取信息流,因此特此…

矿产资源潜力预测不确定性评价

研究目的: 不确定性评估: 到底什么叫不确定性,简单来说就是某区域内的矿产资源量,并不确定到底有多少,你需要给出一个评估或者分布。 研究方法: 1.以模糊集来表示某些量: 关于什么是模糊集&am…

ElementUIV12相关使用方法

今日内容 零、 复习昨日 零、 复习昨日 一、Element UI Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库 官网: https://element.eleme.cn/#/zh-CN Element Plus,基于 Vue 3,面向设计师和开发者的组件库 官网: htt…

MySQL-高可用

目录 高可用 Mysql的主从复制的过程是怎样的? MySQL提供了几种复制模式? 默认的复制模式是什么? 主从同步延迟的原因 MySQL主从复制的数据延迟怎么解决? MySQL主从架构中,读写分离怎么实现? MySQL主库挂了怎么办? 什么是分库分表? 什么时候…

CentOS 7 Web面板的文件管理器说明

在使用CentOS 7 Web Panel(CWP7)时,偶尔要求在服务器曲面上修改,创建,编辑或删除文件。 最简单,最直接的方式是通过利用CWP7的内置文件管理器。 本文将详细介绍如何启动它,使用它,以…

CentOS安装双版本MySQL

CentOS安装双版本MySQL 一、下载mysql二、检查服务器是否安装过mysql三、卸载CentOS7自带的mariadb四、创建mysql用户和用户组五、安装mysql57 (第一个)六、安装mysql8 (第二个) 一、下载mysql 本文以5.7.31和8.0.38为例 去官网下载 压缩包 https://dev.mysql.com/downloads/my…

uniapp 微信小程序根据后端返回的文件链接打开并保存到手机文件夹中【支持doc、docx、txt、xlsx等类型的文件】

项目场景: 我们在使用uniapp官方提供的uni.downloadFile以及uni.saveFile时,会发现这个文件下载的默认保存位置和我们预想的不太一样,容易找不到,而且没有提示,那么我们就需要把文件打开自己保存并且有提示保存到哪个…