【Python】matplotlib 绘图

遇到的问题及解决

import numpy as np
import matplotlib.pyplot as plt
 


# 给定数据点
x = np.array([1, 2, 3, 4, 5])
y = np.array([2.2, 2.8, 3.6, 4.5, 5.1])
 
# 线性回归
p = np.polyfit(x, y, 1)
 
# 绘制拟合结果
y_fit = np.polyval(p, x)
plt.plot(x, y, 'o', label='数据点')
plt.plot(x, y_fit, '-', label='拟合线')
plt.xlabel('x')
plt.ylabel('y')
plt.title('最小二乘法拟合(Python)')
plt.legend()
plt.show()

如果在使用 matplotlib 绘图时汉字显示不出来,可能是由于缺少相应的字体支持。解决这个问题的方法通常有以下几种:

方法一:设置自定义字体

你可以通过设置 matplotlib 使用中文字体来解决汉字显示问题。可以在代码中添加以下设置:

import matplotlib.pyplot as plt
import matplotlib.font_manager as fm

# 设置中文字体
font_path = 'C:/Windows/Fonts/simsun.ttc'  # Windows系统
# font_path = '/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc'  # Linux系统
# font_path = '/Library/Fonts/Songti.ttc'  # macOS系统
my_font = fm.FontProperties(fname=font_path, size=14)

# 绘图代码
plt.plot(x, y, 'o', label='数据点', fontproperties=my_font)
plt.plot(x, y_fit, '-', label='拟合线', fontproperties=my_font)
plt.xlabel('x', fontproperties=my_font)
plt.ylabel('y', fontproperties=my_font)
plt.title('最小二乘法拟合(Python)', fontproperties=my_font)
plt.legend(prop={'size': 12, 'family': 'SimSun'})  # 设置图例字体
plt.show()

DiffCopyInsert

方法二:使用默认字体

如果你不想设置具体的字体,可以尝试使用默认配置并让 matplotlib 自动选择支持中文的字体:

import matplotlib
matplotlib.rcParams['font.sans-serif'] = ['SimHei']  # 指定默认字体为黑体
matplotlib.rcParams['axes.unicode_minus'] = False  # 解决负号'-'显示为方块的问题

DiffCopyInsert

在绘图代码前加入上述配置后,运行你的代码看看效果。

方法三:安装缺失的字体

在某些情况下,你的系统可能缺少中文字体。你可以尝试安装一些常用的中文字体,如「思源黑体」或「微软雅黑」。安装完成后,按照方法一的步骤进行字体设置。

采用以上任一方法后,再次运行代码,汉字就应该能够正确显示了。

polyfit 函数

polyfit 是 numpy 库中的一个函数,用于进行多项式拟合。它的基本作用是找到一个多项式,使得该多项式能够最佳地拟合给定的数据点。

函数定义:

numpy.polyfit(x, y, deg, rcond=None, full=False, w=None, cov=False)

参数说明:

  • x:自变量的值(数据点的 x 坐标)。
  • y:因变量的值(数据点的 y 坐标)。
  • deg:拟合多项式的阶数,例如 1 表示线性拟合,2 表示二次多项式拟合,以此类推。
  • rcond:用于对奇异值的相对条件数的阈值(可选)。
  • full:如果设置为 True,返回更多的信息(可选)。
  • w:权重数组,允许对每个点进行加权(可选)。
  • cov:如果设置为 True,计算参数的协方差矩阵(可选)。

返回值:

polyfit 返回的是一个一维数组,其中包含了拟合多项式的系数,系数的顺序从高到低。例如,对于线性拟合,返回的数组包含斜率和截距。

示例:

在你的代码中,调用 np.polyfit(x, y, 1) 表示对给定的 x 和 y 数据进行一次线性拟合,返回的系数会用于生成拟合线。

polyval函数

polyval 是 numpy 库中的一个函数,用于计算一个多项式在给定点的值。它通常与 polyfit 函数一起使用,前者用于拟合多项式,后者用于计算该多项式在特定自变量值处的对应因变量值。

函数定义:

numpy.polyval(p, x)

参数说明:

  • p:一维数组,包含多项式的系数,按降幂排列。例如,对于二次多项式 ,则 p 需要是 [a, b, c]
  • x:可以是单个值、数组或列表,表示自变量的值,polyval 会计算多项式在这些值处的对应因变量值。

返回值:

polyval 返回的是根据多项式系数计算得出的因变量值。

示例:

在你的代码中,调用 np.polyval(p, x)p 是通过 np.polyfit(x, y, 1) 得到的线性拟合系数,然后在 x 的所有值处计算该线性函数的对应的 y 值,从而得到拟合的结果 y_fit

import numpy as np
import matplotlib.pyplot as plt
 


# 给定数据点
x = np.array([1, 2, 3, 4, 5])
y = np.array([2.2, 2.8, 3.6, 4.5, 5.1])
 
# 线性回归
p = np.polyfit(x, y, 1)
 
# 绘制拟合结果
y_fit = np.polyval(p, x)
plt.plot(x, y, 'o', label='数据点')
plt.plot(x, y_fit, '-', label='拟合线')
plt.xlabel('x')
plt.ylabel('y')
plt.title('最小二乘法拟合(Python)')
plt.rcParams['font.sans-serif'] = ['SimHei']  # 指定默认字体为黑体
plt.rcParams['axes.unicode_minus'] = False  # 解决负号'-'显示为方块的问题
plt.legend()
plt.show()

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

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

相关文章

Simulink中Matlab function使用全局变量

目录 一. 引言二. 普通Matlab function使用全局变量三. Simulink中的Matlab function使用全局变量四. 如何利用Matlab function的全局变量施加随机噪声 一. 引言 最近发现了之前仿真中的一个问题,记录一下备忘。 Matlab function中有时候需要用到全局变量&#xf…

react-markdown内容宽度溢出和换行不生效问题

情景复现: 解决办法,添加样式进行限制 /* index.css */ .markdown-container {word-break: break-word; /* 强制长单词断行 */white-space: pre-wrap; /* 保留空白符序列,但是正常地进行换行 */overflow-wrap: break-word; /* 在长单词或…

【C#设计模式(10)——装饰器模式(Decorator Pattern)】

前言 装饰器模式可以在运行时为对象添加额外的功,而无需修改原始对象的代码。这种方式比继承更加灵活。 代码 //蛋糕类(抽象类) public abstract class Cake {public abstract void Create(); } //奶油蛋糕类 public class CreamCake : Cak…

Diffusion Transformer模型结构解析(DiT、SD3、Flux)

Diffusion Transformer模型结构解析(DiT、SD3、Flux) 本文将通过 DiT、SD3、Flux 三个 DiT 相关工作,介绍 Diffusion 中的 Transformer 结构的应用与演进。注意 SD3 和 Flux 采用的 Flow Matching 的扩散模型形式化当然是很关键的改进&#…

给阿里云OSS绑定域名并启用SSL

为什么要这么做? 问题描述: 当用户通过 OSS 域名访问文件时,OSS 会在响应头中增加 Content-Disposition: attachment 和 x-oss-force-download: true,导致文件被强制下载而不是预览。这个问题特别影响在 2022/10/09 之后新开通 OS…

如何找到系统中bert-base-uncased默认安装位置

问题: 服务器中无法连接huggingface,故需要自己将模型文件上传 ubuntu 可以按照这个链接下载 Bert下载和使用(以bert-base-uncased为例) - 会自愈的哈士奇 - 博客园 里面提供了giehub里面的链接 GitHub - google-research/be…

【算法】区间DP

基本内容 [!NOte] 通过分治的思想实现DP数组 入门例子 NOI1995] 石子合并 - 洛谷 | 计算机科学教育新生态 题目要求:给定一圈石头数组,每个石头对应一个权重值,当两个石头合并时组成一个小石头堆,成本为两个石头权重值相加&#x…

机器学习—决定下一步做什么

现在已经看到了很多不同的学习算法,包括线性回归、逻辑回归甚至深度学习或神经网络。 关于如何构建机器学习系统的一些建议 假设你已经实现了正则化线性回归来预测房价,所以你有通常的学习算法的成本函数平方误差加上这个正则化项,但是如果…

第二十周机器学习笔记:初步认识PINN

第二十周周报 摘要Abstract一、初步认识物理信息神经网络(PINN)1.PINN的基本概念2. PINN与传统机器学习的区别3.构建PINN的步骤 二、代码实战——比较RNN、LSTM、Transformer在股市预测的表现1.RNN在股市预测中的表现2.LSTM在股市预测中的表现3.Transfor…

数据结构的时间复杂度和空间复杂度

目录 时间复杂度 空间复杂度 时间复杂度 基本操作的执行次数,为时间复杂度。 我们使用大O的渐进表示法来表示时间复杂度。 怎么使用? 先看例子: 在这个例子中, 基本操作为变量 count 的 加加 操作,并且,执行…

SQL面试题——奔驰SQL面试题 车辆在不同驾驶模式下的时间

SQL面试题——奔驰SQL面试题 我们的表大致如下 CREATE TABLE signal_log( vin STRING COMMENTvehicle frame id, signal_name STRING COMMENTfunction name, signal_value STRING COMMENT signal value , ts BIGINT COMMENTevent timestamp, dt STRING COMMENTformat yyyy-mm…

Mac 使用mac 原生工具将mp4视频文件提取其中的 mp3 音频文件

简介 Hello! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专业,获得过国家奖学金,有幸在竞赛中拿过一些国奖、省奖…已保研 学习经验:扎实基础 + 多做笔…

多模态与大模型技术赋能企业数据资产平台建设

文章目录 一、政策背景分析二、企业数据资产运营平台架构思路三、统一多模技术赋能企业数据底座建设四、大模型助力数据资产管理降本增效五、典型案例分享 一、政策背景分析 2023年10月,国家数据局正式挂牌,负责协调推进数据基础制度建设,并…

【CentOS】中的Firewalld:全面介绍与实战应用(上)

🐇明明跟你说过:个人主页 🏅个人专栏:《Linux :从菜鸟到飞鸟的逆袭》🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、iptables 时代 2、firewalld 时代 3、 从 ipt…

使用 unicorn 和 capstone 库来模拟 ARM Thumb 指令的执行(一)

import binascii import unicorn import capstonedef printArm32Regs(mu):for i in range(66,78):print("R%d,value:%x"%(i-66,mu.reg_read(i)))def testhumb():CODE b\x1C\x00\x0A\x46\x1E\x00"""MOV R3, R0 的机器码:0x1C 0x00&#xf…

NVT新能德科技入职测评SHL题库更新:数字推理+演绎推理高分答案、真题解析

新能德的入职Verify测评主要考察应聘者的逻辑推理能力、数学能力、数据分析能力以及处理信息的能力。根据搜索结果,测评通常包含以下几个部分: 1. **语言理解**:这部分包括阅读理解、逻辑填空和语句排序。要求应聘者在17分钟内完成30题&#…

HBase理论_背景特点及数据单元及与Hive对比

本文结合了个人的笔记以及工作中实践经验以及参考HBase官网,我尽可能把自己的知识点呈现出来,如果有误,还请指正。 1. HBase背景 HBase作为面向列的数据库运行在HDFS之上,HDFS缺乏随机读写操作,HBase正是为此而出现。…

Linux:进程概念

文章目录 前言一、冯诺依曼体系二、操作系统(Operator System)2.1.操作系统的概念2.2 系统调⽤和库函数概念 三. 进程3.1 基本概念3.1.1 描述进程3.1.2 task_struct 3.2 查看进程3.2.1 getpid3.2.2 proc3.2.3 getppid 总结 前言 • 课本概念:程序的⼀个执⾏实例&am…

el-form el-table 前端排序+校验+行编辑

一、页面 <template><div class"bg" v-if"formData.mouldData?.length 0">当前暂无模板&#xff0c;点击<view class"add" click"addMould">立即创建</view></div><div v-else><el-col :x…

jmeter常用配置元件介绍总结之后置处理器

系列文章目录 安装jmeter jmeter常用配置元件介绍总结之后置处理器 8.后置处理器8.1.CSS/JQuery提取器8.2.JSON JMESPath Extractor8.3.JSON提取器8.4.正则表达式提取器8.5.边界提取器8.5.Debug PostProcessor8.6.XPath2 Extractor8.7.XPath提取器8.8.结果状态处理器 8.后置处理…