Python函数绘图与高等代数互溶实例(一):正弦函数与余弦函数

2023-09-22 11:53:20



Python函数绘图与高等代数互溶实例(一):正弦函数与余弦函数

Python函数绘图与高等代数互溶实例(二):闪点函数

Python函数绘图与高等代数互溶实例(三):设置X|Y轴|网格线


一: 正弦函数plot()绘图实例,中文字体显示问题 

在用matplotlib进行绘图时,如果在绘制过程中会用到中文,则默认情况下会出现字体警告,中文字符显示为方框或乱码的形式

D:\program_file_worker\python_source_work\SSO\pic\chapter01.py:27: UserWarning: Glyph 26412 (\N{CJK UNIFIED IDEOGRAPH-672C}) missing from current font. 

我们可以看到在警告信息中提示“missing from current font”,直译就是“在当前字体中缺少(中文字符)”,大概含义就是默认的字体中不含中文字符。

对于这类问题,核心就是设置绘制图片时的字体参数包含全部的需要用到的字符

# 正弦函数
import matplotlib.pyplot as plt
import numpy as np

from pylab import mpl

'''
   使用matplotlib模块绘制图
   Figure 是一个画布
   linspace(0.5, 3.5, 100)函数是在0.5~3.5之间均匀地取100个数
   randn(100)表示在标准的正太分布中随机地取100个数
'''

x = np.linspace(0.5, 3.5, 100)

y = np.sin(x)

y1 = np.random.randn(100)

plt.scatter(x, y, label="正弦函数绘制实例")

plt.legend()
plt.show()

二: 运行结果:

D:\program_file_worker\anaconda\python.exe D:\program_file_worker\python_source_work\SSO\pic\chapter01.py 
D:\program_file_worker\python_source_work\SSO\pic\chapter01.py:27: UserWarning: Glyph 26631 (\N{CJK UNIFIED IDEOGRAPH-6807}) missing from current font.
  plt.show()
D:\program_file_worker\python_source_work\SSO\pic\chapter01.py:27: UserWarning: Glyph 35760 (\N{CJK UNIFIED IDEOGRAPH-8BB0}) missing from current font.
  plt.show()
D:\program_file_worker\python_source_work\SSO\pic\chapter01.py:27: UserWarning: Glyph 22270 (\N{CJK UNIFIED IDEOGRAPH-56FE}) missing from current font.
  plt.show()

 

三: 解决方案 

添加下面两行代码:

Python脚本中动态设置matplotlibrc,这样也可以避免由于更改配置文件而造成的麻烦,具体代码如下:
# 设置中文显示字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]

有时候,字体更改后,会导致坐标轴中的部分字符无法正常显示,此时需要更改axes.unicode_minus参数:

# 设置正常显示符号
mpl.rcParams["axes.unicode_minus"] = False

注意: 

rcParams修改 font.sans-serif 或 font.family 对应字体

# 以下代码从全局设置字体为SimHei(黑体),解决显示中文问题【Windows】
# 设置font.sans-serif 或 font.family 均可
plt.rcParams['font.sans-serif'] = ['SimHei']
# plt.rcParams['font.family']=['SimHei']
# 解决中文字体下坐标轴负数的负号显示问题
plt.rcParams['axes.unicode_minus'] = False 
由于mac电脑默认没有SimHei(黑体)字体,大家可以下载安装该字体或者修改为系统自带的字体如Arial Unicode MS,如下:

# 以下代码从全局设置字体为Arial Unicode MS,解决显示中文问题【mac】
# 设置font.sans-serif 或 font.family 均可
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']
# plt.rcParams['font.family']=['Arial Unicode MS']
# 解决中文字体下坐标轴负数的负号显示问题
plt.rcParams['axes.unicode_minus'] = False 
rc方法,其实和设置rcParams 基本等效

# 设置font字典为 SimSun(宋体),大小为12(默认为10)
font = {'family' : 'SimSun',
        'size'  : '12'}
# 设置 字体
plt.rc('font', **font)
# 解决中文字体下坐标轴负数的负号显示问题        
plt.rc('axes', unicode_minus=False) 
 

四: 余弦函数plot()绘图实例

# 余弦函数
import matplotlib.pyplot as plt
import numpy as np
from pylab import mpl

'''
   功能函数: 展现变量的趋势变化
   调用函数: plt.plot(x,y,ls="_",lw=2,label="plot figure"
   参数说明: 
      x轴上的数值
      y轴上的数值
      ls: 折线图的折线风格
      lw: 折线图的线条宽度
      label: 标记图形内容标签文本
'''
# 设置中文显示字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]

# 设置正常显示符号
mpl.rcParams["axes.unicode_minus"] = False
x = np.linspace(0.05, 10, 1000)

y = np.cos(x)

plt.plot(x, y, ls='-', lw=2, label="余弦函数绘图实例")

plt.legend()

plt.show()

五: 实例运行结果 

     

更多推荐

以京东平台为例写一份电商平台API接口文档

公共参数请求地址:申请调用KEY地址名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等]cacheString否[

关于什么是框架

框架(Framework)是一个框子——指其约束性,也是一个架子——指其支撑性。IT语境中的框架,特指为解决一个开放性问题而设计的具有一定性的支撑结构。在此结构上约束可以根据具体问题扩展、安插更多的组成部分,从而更迅速和方便地构建完整的解决问题的方案。目前还没看到什么有趣的个人化解释,可能是因为要解决都复杂到设计出框架

u盘上面 安装 ubuntu 系统

u盘上面安装ubuntu系统下载一个Ubuntu22.04.3LTS桌面版https://ubuntu.com/download/desktop找到一个U盘参考文章:把Ubuntu装到U盘里随身携带,并同时支持BIOS和UEFI启动https://www.luogu.com.cn/blog/GGAutomaton/po

消息队列-rabbitMq

消息队列(MQ)到底能干什么?MQ全称为MessageQueue,也就是消息队列,是应用程序和应用程序之间的通信方法。在微服务盛行的当下,MQ被使用的也是越来越多,一般常用来进行业务异步解耦、解耦微服务、流量削峰填谷、消息分发、分布式事务的数据一致性。1、业务异步解耦最常见的场景就是用户注册之后,需要发送注册短信、邮件

Spring Boot业务系统如何实现海量数据高效实时搜索

1.概述我们都知道随着业务系统的发展和使用,数据库存储的业务数据量会越来越大,逐渐成为了业务系统的瓶颈。在阿里巴巴开发手册中也建议:单表行数超过500万行或者单表容量超过2GB才推荐进行分库分表,如果预计三年后数据量根本达不到这个级别,请不要在创建表时就分库分表。数据库最终都是存储在磁盘上,随着数据量变大,会导致数据操

TCP IP网络编程(六) 基于UDP的服务器端、客户端

文章目录一、理解UDP1.UDP套接字的特点2.UDP内部工作原理3.UDP的高效使用二、实现基于UDP的服务器端、客户端1.UDP中的服务端和客户端没有连接2.UDP服务器端和客户端均只需要一个套接字3.基于UDP的数据I/O函数4.基于UDP的回声服务器端、客户端5.UDP客户端套接字的地址分配三、UDP的数据传输

2023研究生数学建模D题思路代码 区域双碳目标与路径规划研究

D题思路代码区域双碳目标与路径规划研究完整解题思路可看视频:2023华为杯研赛D题区域双碳目标与路径规划研究(附代码+全保姆教程)_哔哩哔哩_bilibili​www.bilibili.com/video/BV1Cm4y157CH/?spm_id_from=333.999.0.0问题一:区域碳排放量以及经济、人口、能源

Spring Security 用了那么久,你对它有整体把控吗?

文章目录1.ServletFilter:守门人的角色2.DelegatingFilterProxy:桥接Servlet和Spring的神器3.FilterChainProxy:SpringSecurity过滤器链的管家3.SecurityFilterChain:Security过滤器的串绳4.SpringSecurit

【Vue】避免Vue组件中常见的props默认值陷阱

1.对象和数组默认值的共享问题当你将一个对象或数组作为props的默认值时,它们会在组件的所有实例之间共享。这意味着如果一个组件修改了这个默认值,其他组件也会受到影响,因为它们共享同一个引用。陷阱:props:{userInfo:{type:Object,default:{}}}问题:如果一个组件修改了userInfo

基于vue3 + ant-design 自定义SVG图标iconfont的解决方案;ant-design加载本地iconfont.js不显示图标问题

基于vue3+ant-design自定义SVG图标iconfont的解决方案;ant-design加载本地iconfont.js不显示图标问题一、准备工作1、首先去阿里巴巴矢量图标库自定义添加自己的图标;网站地址https://www.iconfont.cn/整个步骤是:选择图标–添加到项目-项目设置-下载到本地已经选

Web Storage是什么?Web Storage详解

WebStorag是HTML5引入的一个非常重要的功能,可以将数据存储在本地,如保存用户的偏好设置、复选框的选中状态、文本框默认填写的值等。用户在浏览器中刷新网页时,网页通过WebStorage就可以知道用户之前所做的一些修改,而不需要将用户修改的内容存储在服务器端。WebStorage类似于Cookie,但相比Coo

热文推荐