python之matplotlib入门初体验:使用Matplotlib进行简单的图形绘制

目录

  • 绘制简单的折线图
    • 1.1 修改标签文字和线条粗细
    • 1.2 校正图形
    • 1.3 使用内置样式
    • 1.4 使用scatter()绘制散点图并设置样式
    • 1.5 使用scatter()绘制一系列点
    • 1.6 python循环自动计算数据
    • 1.7 自定义颜色
    • 1.8 使用颜色映射
    • 1.9 自动保存图表
    • 练习题

绘制简单的折线图

绘制一个简单折线图,使用模块pyplopt,该模块中包含很多生成图表的函数。

  • subplot()函数: 在一张图片中绘制一个或者多个图表。变量fig表示画窗,ax即axex,代表画窗中创建的笛卡尔坐标区。

  • plot()方法: 尝试根据给定的数据以有意义的方式绘制图表。

  • plt.show()方法: 打开matplotlib查看器并显示绘制的图片。

import matplotlib as plt

squares = [1,4,9,16,25]
fig,ax = plt.subplots()
ax.plot(squares)

plt.show()

在这里插入图片描述

1.1 修改标签文字和线条粗细

对图表进行标签的大小、线条粗细进行调整。

  • linewidth参数:绘制的线条粗细。
  • set_title()函数:给图表制定标题。
  • fontsize参数:指定图表中各种文字的大小。
  • tick_params() 函数 : 设置刻度的样式。其中指定的实参将影响x轴和y轴上的刻度(axes=‘both’ ),并将刻度标记的字号设置为14(labelsize=14)。

注:由于显示中文出现错误时的解决方案:

在代码中添加如下语句 —— 设置字体为:SimHei(黑体)
plt.rcParams[‘font.sans-serif’]=[‘SimHei’]

解决方案

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']
squares = [1,4,9,16,25]
fig,ax = plt.subplots()
ax.plot(squares,linewidth=3)

ax.set_title("平方数",fontsize = 24)
ax.set_xlabel('值',fontsize=14)
ax.set_ylabel('值的平方',fontsize=14)

ax.tick_params(axis='both',labelsize=14)

plt.show()

在这里插入图片描述

1.2 校正图形

可以看到图片中横轴x对应的平方数都是不准确的,因此需要对图片进行校正。

向plot() 提供一系列数时,它假设第一个数据点对应的坐标值为0,但这里第一个点对应的 值为1。为改变这种默认行为,可向plot() 同时提供输入值和输出值。

  • 设置plot函数的输入值为从1开始到5结束的列表,然后把输入输出列表同时传入函数中。
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']
squares = [1,4,9,16,25]
input_values = [1,2,3,4,5]
fig,ax = plt.subplots()
ax.plot(input_values,squares,linewidth=3)

ax.set_title("平方数",fontsize = 24)
ax.set_xlabel('值',fontsize=14)
ax.set_ylabel('值的平方',fontsize=14)

ax.tick_params(axis='both',labelsize=14)

plt.show()

在这里插入图片描述

1.3 使用内置样式

可以使用matplotlib中内置的图标样式进行图像的绘制,打印一下已有的样式类型:

print(plt.style.available)

[‘Solarize_Light2’, ‘_classic_test_patch’, ‘_mpl-gallery’, ‘_mpl-gallery-nogrid’, ‘bmh’, ‘classic’, ‘dark_background’, ‘fast’, ‘fivethirtyeight’, ‘ggplot’, ‘grayscale’, ‘seaborn-v0_8’, ‘seaborn-v0_8-bright’, ‘seaborn-v0_8-colorblind’, ‘seaborn-v0_8-dark’, ‘seaborn-v0_8-dark-palette’, ‘seaborn-v0_8-darkgrid’, ‘seaborn-v0_8-deep’, ‘seaborn-v0_8-muted’, ‘seaborn-v0_8-notebook’, ‘seaborn-v0_8-paper’, ‘seaborn-v0_8-pastel’, ‘seaborn-v0_8-poster’, ‘seaborn-v0_8-talk’, ‘seaborn-v0_8-ticks’, ‘seaborn-v0_8-white’, ‘seaborn-v0_8-whitegrid’, ‘tableau-colorblind10’]

import matplotlib.pyplot as plt
print(plt.style.available)
squares = [1,4,9,16,25]
input_values = [1,2,3,4,5]

plt.style.use('seaborn-v0_8')

fig,ax = plt.subplots()
ax.plot(input_values,squares,linewidth=3)

ax.set_title("squares",fontsize = 24)
ax.set_xlabel('value',fontsize=14)
ax.set_ylabel('the square of value',fontsize=14)

ax.tick_params(axis='both',labelsize=14)

plt.show()

使用plt.style.use(‘seaborn-v0_8’)绘制的图像:

在这里插入图片描述

换了另一个样式:

在这里插入图片描述

1.4 使用scatter()绘制散点图并设置样式

绘制一个点:

import matplotlib.pyplot as plt

plt.style.use('seaborn-v0_8')
fig,ax = plt.subplots()
ax.scatter(2,4)

plt.show()

在这里插入图片描述
绘制样式:

import matplotlib.pyplot as plt

plt.style.use('seaborn-v0_8')
fig,ax = plt.subplots()
ax.scatter(2,4)

ax.set_title('squares',fontsize = 24)
ax.set_xlabel('value',fontsize = 14)
ax.set_ylabel('squares of value',fontsize = 14)

ax.tick_params(axis='both',which='major',labelsize=14)
plt.show()

在这里插入图片描述

1.5 使用scatter()绘制一系列点

列表x_values 包含要计算平方值的数,列表y_values 包含前述数的平方值。

将这些列表传递给scatter() 时,Matplotlib依次从每个列表中读取一个值来绘制一个点。

要绘制的点的坐标分别为 (1, 1)、(2, 4)、(3, 9)、(4, 16)和(5, 25)

import matplotlib.pyplot as plt

x_values = [1,2,3,4,5]
y_values = [1,4,9,16,25]

plt.style.use('seaborn-v0_8')
fig,ax = plt.subplots()
ax.scatter(x_values,y_values,s=100)
ax.set_title('squares',fontsize = 24)
ax.set_xlabel('value',fontsize = 14)
ax.set_ylabel('squares of value',fontsize = 14)

ax.tick_params(axis='both',which='major',labelsize=14)
plt.show()

在这里插入图片描述

1.6 python循环自动计算数据

为1000个点绘制代码,首先创建两个包含x和y值的列表,然后传给scatter方法。

方法axis()指定了每个坐标轴的取值范围,该方法要求提供四个值:x轴y轴的最小值和最大值。

import matplotlib.pyplot as plt

x_values = range(1,1001)
y_values = [x**2 for x in x_values]
plt.style.use('seaborn-v0_8')
fig,ax = plt.subplots()

ax.scatter(x_values,y_values,s=10)
ax.set_title('squares',fontsize = 24)
ax.set_xlabel('value',fontsize = 14)
ax.set_ylabel('squares of value',fontsize = 14)
ax.axis([0,1100,0,1100000])
plt.show()

在这里插入图片描述

1.7 自定义颜色

设置散点图数据点的颜色:

  1. 传递参数c,设置c的内容。
ax.scatter(x_value,y_value,c='red',s=10)
  1. 使用RGB自定义颜色,传递一个元组,其中包含三个0~1的小数值,分别表示红色、绿色和蓝色。
ax.scatter(x_values, y_values, c=(0, 0.8, 0), s=10)

在这里插入图片描述

1.8 使用颜色映射

**颜色映射 (colormap)**是一系列颜色,从起始颜色渐变到结束颜色。在可视化中,颜色映射用于突出数据的规律。可以用较浅的颜色来显示较小的值,并使用较深的颜色来显示较大的值。

模块pyplot 内置了一组颜色映射。要使用这些颜色映射,需要告诉pyplot 该如何设置数据集中每个点的颜色。下面演示了如何根据每个点的 值来设置其颜色。

ax.scatter(x_values,y_values,c=y_values,cmap=plt.cm.Blues,s=10)

在这里插入图片描述

1.9 自动保存图表

要让程序自动将图表保存到文件中,可将调用plt.show() 替换为调用plt.savefig()。

plt.savefig('squares_plot.png', bbox_inches='tight')
  • 第一个实参指定要以什么文件名保存图表,这个文件将存储到scatter_squares.py所在的目录。

  • 第二个实参指定将图表多余的空白区域裁剪掉。如果要保留图表周围多余的空白区域,只需省略这个实参即可。

练习题

在这里插入图片描述

import matplotlib.pyplot as plt

plt.style.use('seaborn-v0_8')
x_values = range(1,6)
y_valus = [x**3 for x in x_values]
fig,ax = plt.subplots()
ax.scatter(x_values,y_valus)
ax.set_title('cubic number')
ax.set_xlabel('value')
ax.set_ylabel('value to the cube')
plt.show()

在这里插入图片描述

import matplotlib.pyplot as plt

plt.style.use('seaborn-v0_8')
x_values = range(1,5001)
y_valus = [x**3 for x in x_values]
fig,ax = plt.subplots()
ax.axis([0,5500,0,125000000000])
ax.scatter(x_values,y_valus,c=y_valus,cmap=plt.cm.Blues,s=10)
ax.set_title('cubic number')
ax.set_xlabel('value')
ax.set_ylabel('value to the cube')
plt.show()

在这里插入图片描述

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

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

相关文章

GPT-3.5 人工智能还是人工智障?——西红柿炒钢丝球!!

人工智能还是人工智障?——西红柿炒钢丝球 西红柿炒钢丝球的 基本信息西红柿炒钢丝球的 详细制作方法材料步骤 备注幕后花絮。。。。。。。。。关于GPT-3.5,你的看法: 西红柿炒钢丝球的 基本信息 西红柿炒钢丝球是一道具有悠久历史的传统中式…

springboot汽车租赁后台java出租客户管理jsp源代码mysql

本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 springboot汽车租赁后台 系统有1权限:管理…

阿里巴巴面试题---考察对底层源代码的熟悉程度

题目如图所示: 很多人可能会觉得两个输出都会是false,因为我们都会觉得""比较的是引用类型的地址,虽然放入的值都一样但是重新创造了新对象,地址不一样,所以结果都是false. 然而,当我们运行程序会发现结果都是false. 下面,我们来分析为什么是这样的结果. 我们知道…

OneFlow 中的 Softmax

Softmax 是深度学习模型中的常见算子。PyTorch 的 Softmax 算子直接调用 cuDNN 的接口。而 OneFlow 内部针对输入数据的类别数量,采用3个 kernel 来分别处理,在多数情况下都可以获得比 cuDNN 更优的性能表现。测试结果可见 如何实现一个高效的Softmax CU…

未来混合动力汽车的发展:技术探索与前景展望

随着环境保护意识的增强和对能源消耗的关注,混合动力汽车成为了汽车行业的研发热点。混合动力汽车融合了传统燃油动力和电力动力系统,通过优化能源利用效率,既降低了燃油消耗和排放,又提供了更长的续航里程。本文将探讨混合动力汽…

配置docker,案例复现

配置docker(系统为centos) 1.检查操作系统环境: docker要求CentOS系统的内核版本高于 3.10 ,通过 uname -r 命令查看你当前的内核版本是否支持安装docker 2.查看你是否拥有旧的版本,有的话卸载,没有的话直接略过该步骤 sudo yum remove d…

【快应用】list组件属性的运用指导

【关键词】 list、瀑布流、刷新、页面布局 【问题背景】 1、 页面部分内容需要瀑布流格式展示,在使用lsit列表组件设置columns进行多列渲染时,此时在里面加入刷新动画时,动画只占了list组件的一列,并没有完全占据一行宽度&…

“解锁IDEA的潜力:高级Java Maven项目配置指南”

目录 前言:流程目录:1.确保Java和Maven已安装检查Java是否已正确安装并配置环境变量 2.创建一个新的Maven项目导航到要创建项目的目录配置Maven运行以下命令创建一个新的Maven项目 3.配置项目的pom.xml文件打开项目根目录下的pom.xml文件配置Web.xml 4.配…

案例13 Spring MVC参数传递案例

基于Spring MVC实现HttpServletRequest、基本数据类型、Java Bean、数组、List、Map、JSON方式的参数传递。 1. 创建项目 选择Maven快速构建web项目&#xff0c;项目名称为case13-springmvc02。 2. 配置Maven依赖 <?xml version"1.0" encoding"UTF-8&quo…

Vue2(生命周期,列表排序,计算属性和监听器)

目录 前言一&#xff0c;生命周期1.1&#xff0c;生命周期函数简介1.2&#xff0c;Vue的初始化流程1.3,Vue的更新流程1.4&#xff0c; Vue的销毁流程1.5&#xff0c; 回顾生命周期1.,6&#xff0c;代码演示1.6-1&#xff0c;beforeCreate1.6-2&#xff0c;created1.6-3&#xf…

9.2.1Socket(UDP)

一.传输层: 1.UDP:无连接,不可靠,面向数据报,全双工. 2.TCP:有连接,可靠,面向字节流,全双工. 注意:这里的可不可靠是相对的,并且和安不安全无关. 二.UDP数据报套接字编程: 1.socket文件:表示网卡的这类文件. 2.DatagramPacket:表示一个UDP数据报. 三.代码实现: 1.回显服务…

Linux系列:从0到1用Docker部署springboot项目

目录 1.前提条件 2.编写DockerFile镜像文件 3.打包SpringBoot项目 4.通过软件Xftp进行传输&#xff08;*&#xff09; 1.点击“文件-新建”​编辑 5.操作远程主机 1.docker构建 2.容器运行 6.容器的关闭和删除 1.前提条件 Linux、docker、xftp的安装、一台可以访问的远…

自动驾驶——驶向未来的革命性技术

自动驾驶——驶向未来的革命性技术 自动驾驶的组件自动驾驶的优势自动驾驶的应用自动驾驶的未来中国的自动驾驶 自动驾驶是一种技术&#xff0c;它允许车辆在没有人类驾驶员的情况下自主地进行行驶。它利用各种传感器、计算机视觉、人工智能和机器学习算法来感知和理解周围环境…

Vim学习(三)—— Git Repo Gerrit

Git、Gerrit、Repo三者的概念及使用 三者各自作用&#xff1a; git&#xff1a;版本管理库&#xff0c;在git库中没有中心服务器的概念&#xff0c;真正的分布式。 repo&#xff1a;repo就是多个git库的管理工具。如果是多个git库同时管理&#xff0c;可以使用repo。当然使用…

Linux常见面试题,应对面试分享

操作系统基础 1.cpu占⽤率太⾼了怎么办? 排查思路是什么&#xff0c;怎么定位这个问题&#xff0c;处理流程 其他程序: 1.通过top命令按照CPU使⽤率排序找出占⽤资源最⾼的进程 2.lsof查看这个进程在使⽤什么⽂件或者有哪些线程 3.询问开发或者⽼⼤,是什么业务在使⽤这个进程…

期权定价模型系列【2】—期权的希腊字母计算及应用

本篇文章旨在介绍期权常见希腊字母的计算及应用 本专栏更多侧重于理论及文字方面的展示&#xff0c;文章具体的代码可以参考我的另一个专栏【期权量化】。 【期权量化】专栏有同名文章&#xff0c;并且给出了文章的具体代码。 专栏地址&#xff1a; http://t.csdn.cn/Y30Hk…

接口测试自动化:简化测试流程,提升效率

接口测试自动化&#xff1a;简化测试流程&#xff0c;提升效率 什么是接口测试自动化&#xff1f; 接口测试自动化是指使用特定的工具和技术来自动化执行接口测试的过程。通过编写脚本&#xff0c;自动化工具可以模拟用户与软件系统的交互&#xff0c;验证接口的功能和性能。…

启动springboot,出现Unable to start embedded Tomcat

报错信息 org.apache.catalina.core.ContainerBase : A child container failed during startjava.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbedd…

智能优化算法:白鲨优化算法-附代码

智能优化算法&#xff1a;白鲨优化算法 文章目录 智能优化算法&#xff1a;白鲨优化算法1.白鲨优化算法1.1 初始化1.2 速度更新1.3位置更新1.4鱼群行为 2.实验结果3.参考文献4.Matlab5.python 摘要&#xff1a;WSO 算法是 Braik 等于 2022 年提出一种基于白鲨深海觅食策略的新型…

【Opencv入门到项目实战】(十):项目实战|文档扫描|OCR识别

所有订阅专栏的同学可以私信博主获取源码文件 文章目录 1.引言1.1 什么是光学字符识别 (OCR)1.2 应用领域 2.项目背景介绍3.边缘检测3.1 原始图像读取3.2 预处理3.3 结果展示 3.轮廓检测4.透视变换5.OCR识别5.1 tesseract安装5.2 字符识别 1.引言 今天我们来看一个OCR相关的文…