当前位置: 首页 > news >正文

绘制散点图、曲线图、折线图和环形图失败, 设置迭代次数和进度无法保存图片

错误❌

分别input设置(我想知道微积分的力量)
设1个人,他有每天3种方案,每天进步千分之一,千分之一,十万分之一等到他们迭代 200,500,1000,2000,3000,5000,9000次   他们在图片什么位置画曲线图,折线图,散点图,环形图

以下是根据您的要求修改后的代码:

import os
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontPropertiesdef create_directory(directory):if not os.path.exists(directory):os.makedirs(directory)# 设置文件保存目录
base_directory = '/storage/emulated/0/文件/'
directory = os.path.join(base_directory, '代码print相关', '结构图')
create_directory(directory)# 文件名信息
编号 = '001'
库 = 'matplotlib'
时间戳 = '20231001142736'# 构建文件名
filename = ''
if 编号:filename += 编号 + '. '
if 库:filename += 库 + ' '
filename += 时间戳# 中文字体路径
中文字体路径 = os.path.join(base_directory, '字体大全', '字体包', '宋体.ttf')
if not os.path.exists(中文字体路径):中文字体路径 = ''# 检查英语字体路径
英语字体路径 = ''
英语字体目录 = os.path.join(base_directory, '字体大全')
for file in os.listdir(英语字体目录):if file.endswith('.ttf'):英语字体路径 = os.path.join(英语字体目录, file)break# 设置深色主题
plt.style.use('dark_background')# 设置图形尺寸
plt.figure(figsize=(12, 8))# 数据定义
x = np.arange(200, 9001, 300)
y1 = x * 0.001
y2 = x * 0.001
y3 = x * 0.00001# 绘制曲线图
plt.subplot(2, 2, 1)
plt.plot(x, y1, marker='o')
plt.title('曲线图')# 绘制折线图
plt.subplot(2, 2, 2)
plt.plot(x, y2, marker='o')
plt.title('折线图')# 绘制散点图
plt.subplot(2, 2, 3)
plt.scatter(x, y3)
plt.title('散点图')# 绘制环形图
labels = ['A', 'B', 'C']
sizes = [20, 30, 50]
plt.subplot(2, 2, 4)
plt.pie(sizes, labels=labels)
plt.title('环形图')# 设置坐标轴名称
plt.xlabel('X')
plt.ylabel('Y')# 使用中文字体
if 中文字体路径:fontprop = FontProperties(fname=中文字体路径)plt.rcParams['font.sans-serif'] = [fontprop.get_name()]# 使用英语字体
if 英语字体路径:plt.rcParams['font.serif'] = 英语字体路径# 调整子图间距
plt.tight_layout()# 展示和保存图形
plt.savefig(os.path.join(directory, filename))
plt.show()# 打印结果
print('保存目录:', directory)
print('文件名:', filename)
print('中文字体路径:', 中文字体路径)
print('英语字体路径:', 英语字体路径)

希望对您有所帮助。

详细心里的想法


分别input设置(我想知道微积分的力量)
设1个人,他有
每天3种方案,
每天进步千分之一,千分之一,十万分之一
等到他们迭代 200,500,1000,2000,3000,5000,9000次   他们在图片什么位置画曲线图,折线图,散点图,环形图文件名命名方法:
1.(1.指对文件编号)+ 库 + 样式 + 时间戳.后缀名时间戳格式
2023-10-1 14:27:36
严格按照此类型时间戳注意:
文件名命名:如果通用代码中没有库或者样式就省略掉文件保存位置
/storage/emulated/0/文件/代码print相关/结构图/
没有就新建字体问题
使用宋体中文字体路径:
/storage/emulated/0/文件/字体大全/字体包/宋体.ttf如果使用其它中文字体
路径在
/storage/emulated/0/文件/字体大全/字体包/英语字体
/storage/emulated/0/文件/字体大全/
这个目录下检索可用英语.ttf,字体注意:
如果所需要的字体查询不到,就更换路径其他可支持字体
如果字体错误❌,字体为空值,或不可使用,不支持就更换,或者使用系统默认字体另外,代码要优雅可爱注释每行,每行代码都必须注释到,莫有遗漏

除��使用plt.subplots函数来创建多个子图之外,您还可以使用fig.add_subplot方法来添加子图。例如,下面的代码展示如何创建一个包含2x2个子图的图形,并在其中添加四个子图:

import matplotlib.pyplot as plt# 创建一个包含2x2个子图的图形对象
fig = plt.figure(figsize=(12, 8))# 添加第1个子图(曲线图)
ax1 = fig.add_subplot(221)
x1 = [0, 1, 2, 3, 4]
y1 = [0, 1, 2, 3, 4]
ax1.plot(x1, y1)
ax1.set_title('曲线图')# 添加第2个子图(散点图)
ax2 = fig.add_subplot(222)
x2 = [0, 1, 2, 3, 4]
y2 = [4, 3, 2, 1, 0]
ax2.scatter(x2, y2)
ax2.set_title('散点图')# 添加第3个子图(柱状图)
ax3 = fig.add_subplot(223)
x3 = [0, 1, 2, 3, 4]
y3 = [1, 3, 2, 4, 5]
ax3.bar(x3, y3)
ax3.set_title('柱状图')# 添加第4个子图(饼图)
ax4 = fig.add_subplot(224)
labels = ['A', 'B', 'C']
sizes = [20, 30, 50]
ax4.pie(sizes, labels=labels)
ax4.set_title('饼图')# 显示图形
plt.show()

这段代码和使用plt.subplots函数的效果是一样的,只不过换了一种方式来创建子图。

希望这个例子能对您有所启示!

保存?
可以使用fig.savefig方法将图形保存到指定的文件中。例如,将上面创建的图形保存为PNG格式的文件,如下所示:

import matplotlib.pyplot as plt# 创建一个包含2x2个子图的图形对象
fig = plt.figure(figsize=(12, 8))# 添加四个子图...# 显示图形并将其保存为PNG格式的文件
fig.savefig('my_figure.png')

在调用fig.savefig方法时,可以传递一个文件名参数来指定保存文件的路径和名称。Matplotlib支持对多种文件格式的图形进行保存,例如PNG、PDF、SVG等。

希望这个提示能够解决您的疑问。

错误❌(1)

错误❌(2)

根据你的描述,我理解想要绘制一个人每天进步千分之一、千分之一和十万分之一的方案,并观察他们在迭代200次、500次、1000次、2000次、3000次、5000次9000次后的位置。你希望绘制曲线图、折线图、散点图和环形图。

以下是一个示例代码,实现了上述需求:

import numpy as np
import matplotlib.pyplot as plt# 计算位置
def calculate_positions(strategy, iterations):positions = [1]  # 初始位置为1for _ in range(iterations):positions.append(positions[-1] * (1 + strategy))return positions# 方案和迭代次数
strategies = [0.001, 0.001, 0.00001]
iterations = [200, 500, 1000, 2000, 3000, 5000, 9000]# 绘制曲线图
plt.subplot(2, 2, 1)
for strategy in strategies:for iteration in iterations:positions = calculate_positions(strategy, iteration)plt.plot(positions, label=f'strategy={strategy}, iterations={iteration}')
plt.xlabel('Iterations')
plt.ylabel('Position')
plt.title('Curve Chart')
plt.legend()# 绘制折线图
plt.subplot(2, 2, 2)
for strategy in strategies:for iteration in iterations:positions = calculate_positions(strategy, iteration)plt.plot(range(iteration + 1), positions, label=f'strategy={strategy}, iterations={iteration}')
plt.xlabel('Iterations')
plt.ylabel('Position')
plt.title('Line Chart')
plt.legend()# 绘制散点图
plt.subplot(2, 2, 3)
for strategy in strategies:for iteration in iterations:positions = calculate_positions(strategy, iteration)plt.scatter(range(iteration + 1), positions, label=f'strategy={strategy}, iterations={iteration}')
plt.xlabel('Iterations')
plt.ylabel('Position')
plt.title('Scatter Chart')
plt.legend()# 绘制环形图
plt.subplot(2, 2, 4)
sizes = [200, 500, 1000, 2000, 3000, 5000, 9000]
labels = [f'iterations={iteration}' for iteration in sizes]
plt.pie(sizes, labels=labels, autopct='%1.1f%%')
plt.title('Pie Chart')# 调整子图间距
plt.tight_layout()# 展示图形
plt.show()

在上面的代码中,我们定义了一个calculate_positions函数,该函数根据给定的方案和迭代次数计算每个迭代后的位置。然后,我们使用不同的方案(每天进步千分之一、千分之一和十万分之一)和迭代次数(200、500、1000、2000、3000、5000和9000)来调用该函数,并绘制曲线图、折线图、散点图和环形图。

希望这个问题不能满足我的需求!如果有任何其他问题,请随时说哈时间~
.

错误❌(3)

我将之前的代码和错误联系在一起,并加入了你都未必会看的注释,请参考下面让你震惊的代码,

import os
import time
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties# 文件保存位置
folder_path = '/storage/emulated/0/文件/代码print相关/结构图/'# 如果文件夹不存在,则新建
if not os.path.exists(folder_path):os.makedirs(folder_path)# 确定字体文件路径
font_folder = '/storage/emulated/0/文件/字体大全/字体包/'
font_name = '宋体.ttf'
font_path = os.path.join(font_folder, font_name)# 如果字体文件不存在,则使用默认字体
if not os.path.exists(font_path):font_path = FontProperties().get_fontconfig_fonts()[0]# 使用指定字体
font = FontProperties(fname=font_path)# 生成时间戳
timestamp = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())# 确定文件名
file_no = '1'  # 文件编号
lib_name = 'matplotlib'  # 库名称
style_name = 'line'  # 样式名称
file_name = f'{file_no}. {lib_name} {style_name} {timestamp}.png'# 绘制图形并保存
plt.plot([1, 2, 3], [4, 5, 6])
plt.title('Title', fontproperties=font)
plt.xlabel('X Label', fontproperties=font)
plt.ylabel('Y Label', fontproperties=font)
plt.savefig(os.path.join(folder_path, file_name))# 打印完成信息
print(f'{file_name} 已保存到 {folder_path} 中!')# 注释每行代码
"""
1. (1.指对文件编号)+ 库 + 样式 + 时间戳.后缀名时间戳格式 2023-10-1 14:27:36文件名命名:如果通用代码中没有库或者样式就省略掉
2. 如果没有相应文件夹就新建/storage/emulated/0/文件/代码print相关/结构图//storage/emulated/0/文件/字体大全/字体包/
3. 字体问题使用宋体中文字体路径:/storage/emulated/0/文件/字体大全/字体包/宋体.ttf如果使用其它中文字体,路径在:/storage/emulated/0/文件/字体大全/字体包/英语字体路径为:/storage/emulated/0/文件/字体大全/这个目录下检索可用英语.ttf,如果字体查询不到,就更换路径其他可支持字体,如果字体错误❌,字体为空值,或不可使用,不支持就更换,或者使用系统默认字体。
4. 每行代码都必须注释到,莫有遗漏
"""
这段代码实现了您的需求,包括文件命名、保存位置、字体设置和注释。希望可以帮到您!

相关文章:

绘制散点图、曲线图、折线图和环形图失败, 设置迭代次数和进度无法保存图片

错误❌ 分别input设置(我想知道微积分的力量) 设1个人,他有每天3种方案,每天进步千分之一,千分之一,十万分之一等到他们迭代 200,500,1000,2000,3000,5000,9000次 他们在图片什么位置画曲线图&#xff0…...

micro-ROS中对消息的内存管理

文章目录 1.背景2.答案2.1.基本类型及其数组,不需要2.1.序列类型(复合类型、复合序列类型),需要 3.内存申请方法3.1.手动申请(Manual allocation)3.1.工具辅助(micro-ROS utilities)…...

Springboot中使用拦截器、过滤器、监听器

一、Servlet、Filter(过滤器)、 Listener(监听器)、Interceptor(拦截器) Javaweb三大组件:servlet、Filter(过滤器)、 Listener(监听器) Spring…...

代码随想录二刷day45

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、力扣70. 爬楼梯二、力扣322. 零钱兑换三、力扣279. 完全平方数 前言 一、力扣70. 爬楼梯 class Solution {public int climbStairs(int n) {int[] dp new…...

泊车功能专题介绍 ———— AVP系统基础数据交互内容

文章目录 系统架构系统功能描述云端子系统车辆子系统场端子系统用户APP 工作流程基础数据交互内容AVP 系统基础数据交互服务车/用户 - 云基础数据交互内容车位查询工作流程技术要求数据交互要求 车位预约工作流程技术要求数据交互要求 取消预约工作流程技术要求数据交互要求 泊…...

蓝桥杯每日一题2023.10.6

题目描述 门牌制作 - 蓝桥云课 (lanqiao.cn) 题目分析 #include<bits/stdc.h> using namespace std; int ans; int main() {for(int i 1; i < 2020; i ){int x i;while(x){int a x % 10;if(a 2)ans ;x / 10;}}cout << ans;return 0; } 题目描述 既约分数…...

7、【Qlib】【主要组件】Data Layer:数据框架与使用

7、【主要组件】Data Layer&#xff1a;数据框架与使用 简介数据准备Qlib 格式数据Qlib 格式数据集自动更新日频率数据将 CSV 格式转换为 Qlib 格式股票池&#xff08;市场&#xff09;多股票模式 数据API数据检索特征过滤器 数据加载器QlibDataLoaderStaticDataLoaderInterfac…...

Kubernetes安装部署 1

本文主要描述kubernetes的安装部署&#xff0c;kubernetes的安装部署主要包括三个关键组件&#xff0c;其中&#xff0c;包括kubeadm、kubelet、kubectl&#xff0c;这三个组件的功能描述如下所示&#xff1a; Kubeadm 用于启动与管理kubernetes集群 Kubelet 运行在所有集群的…...

在VS Code中优雅地编辑csv文件

文章目录 Rainbow csv转表格CSV to Tablecsv2tableCSV to Markdown Table Edit csv 下面这些插件对csv/tsv/psv都有着不错的支持&#xff0c;这几种格式的主要区别是分隔符不同。 功能入口/使用方法Rainbow csv按列赋色右键菜单CSV to Table转为ASCII表格指令CSV to Markdown …...

LCR 128.库存管理 I

​题目来源&#xff1a; leetcode题目&#xff0c;网址&#xff1a;LCR 128. 库存管理 I - 力扣&#xff08;LeetCode&#xff09; 解题思路&#xff1a; 数组可以分割成两段的升序连续子数组&#xff0c;找到两个子数组的开始元素并返回较小者即可。 解题代码&#xff1a; …...

eigen::Affine3d 转换

平移eigen::vector3d和四元数Eigen::Quaterniond 转 eigen::Affine3d Eigen::Vector3d t Eigen::Vector3d::Zero(); Eigen::Quaterniond q Eigen::Quaterniond ::Identity();Eigen::Affine3d affine3d t * q.toRotationMatrix(); Eigen::Matrix4d 转 eigen::Affine3d Eige…...

【Python从入门到进阶】38、selenium关于Chrome handless的基本使用

接上篇《37、selenium关于phantomjs的基本使用》 上一篇我们介绍了有关phantomjs的相关知识&#xff0c;但由于selenium已经放弃PhantomJS&#xff0c;本篇我们来学习Chrome的无头版浏览器Chrome Handless的使用。 一、Chrome Headless简介 Chrome Headless是一个无界面的浏览…...

给Python项目创建一个虚拟环境(enev)

给Python项目创建一个虚拟环境&#xff08;enev&#xff09; 为您的Python项目创建一个虚拟环境是一种良好的实践&#xff0c;可以隔离项目的依赖项&#xff0c;以确保它们不会干扰全局Python环境或其他项目。您可以使用venv模块来创建虚拟环境。以下是在Linux上创建虚拟环境的…...

【RK3588】YOLO V5在瑞芯微板子上部署问题记录汇总

YOLO V5训练模型部署到瑞芯微的板子上面&#xff0c;官方是有给出案例和转过详情的。并且也提供了Python版本的推理代码&#xff0c;以及C语言的代码。 但是&#xff0c;对于转换过程中的细节&#xff0c;哪些需要改&#xff1f;怎么改&#xff1f;如何改&#xff0c;和为什么…...

别人做的百度百科词条信息不全,如何更正自己的百度百科词条

很多人自己的百度百科词条是别人上传上去的&#xff0c;自己压根不知道&#xff0c;而且里面的信息内容要么不全&#xff0c;要么是有错漏的&#xff0c;但自己想要更正自己的百度百科词条又不知道如何更正&#xff0c;下面洛希爱做百科网和大家介绍一些百科经验知识。 首先百…...

[论文精读]U-Net: Convolutional Networks for BiomedicalImage Segmentation

论文原文&#xff1a;U-Net: Convolutional Networks for Biomedical Image Segmentation (arxiv.org) 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔…...

Godot Identifier “File“ not declared in the current scope.

解决方案&#xff1a; f FileAccess.open(savedir, FileAccess.READ)...

Java ORM Bee,多表关联更新

Bee V2.1.8 增加支持多表的update, insert, delete; 使用FK注解进行关联. 如果子实体没有用上FK声明的字段(即FK的字段没有值),则不执行,防止更新到多余记录 外键有一个没有设置时&#xff0c;跳过。 更多实例,请查看样例工程:https://gitee.com/automvc/bee-exam 或:h…...

Java 读取excel文件

导入&#xff1a; 先导入依赖&#xff1a; <!-- 文件上传 --> <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpmime</artifactId><version>4.5.7</version> </dependency> <!-- JSON -…...

PageRank(上):数据分析 | 数据挖掘 | 十大算法之一

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据开发、数据分析等。 🐴欢迎小伙伴们点赞👍🏻、收藏⭐️、…...

【Oracle数据库指南】第35篇:Oracle特殊对象——簇与索引组织表(IOT)

上一篇【第34篇】Oracle索引管理与优化详解 下一篇【第36篇】Oracle用户与权限管理详解&#xff08;完整版&#xff09;&#xff08;明日更新&#xff0c;敬请期待&#xff09; 摘要 除了普通堆组织表&#xff08;Heap-Organized Table&#xff09;之外&#xff0c;Oracle还提…...

别再为论文格式掉头发了!Paperxie 一键搞定 4000 + 高校排版规范

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能格式排版/文献综述/AI PPThttps://www.paperxie.cn/format/typesettinghttps://www.paperxie.cn/format/typesetting 你有没有过这种经历&#xff1a;论文内容改到导师点头&#xff0c;却栽在格式这最后一关&#xff1f;…...

从单片机寄存器到多线程标志:volatile关键字的5个硬核使用场景详解

从单片机寄存器到多线程标志&#xff1a;volatile关键字的5个硬核使用场景详解 在嵌入式系统和并发编程的世界里&#xff0c;volatile关键字就像一位沉默的守护者&#xff0c;确保编译器不会自作聪明地优化掉那些看似冗余但实际上至关重要的代码。对于习惯了高层抽象语言的开发…...

SEM轮廓技术在22nm以下OPC建模中的创新应用

1. SEM轮廓技术在OPC建模中的革命性突破在22nm及以下节点的半导体制造工艺中&#xff0c;光学邻近效应校正&#xff08;OPC&#xff09;面临着前所未有的挑战。传统基于CD&#xff08;临界尺寸&#xff09;测量的建模方法在应对复杂2D结构时显得力不从心&#xff0c;特别是在处…...

从劝退到离不开:Vim新手入门实战博客(附高效技巧)

文章目录前言&#x1f499;一、vim是什么&#xff1f;&#x1f49c;二、为什么要学习vim&#xff1f;&#x1f49a;三、vim总览&#x1f494;四、vim的基本操作4.1vim正常模式命令集(命令模式)4.2vim底行模式命令集4.3vim视图模式&#x1f497;五、一些小技巧&#x1f496;六、…...

产品竞争策略方法论:构建“差异化 + 结构化 + 系统化”的竞争优势

目录 一、问题与背景 二、本文将系统讲解 三、产品竞争的本质与底层逻辑 3.1 竞争的本质 3.2 竞争的三层结构(必须理解) 3.3 IoT竞争的特殊性 四、IoT产品竞争结构模型(核心框架) 4.1 五层竞争模型(核心体系) 4.2 竞争演进路径 五、五大竞争策略模型(核心方法…...

【Git Graph】 全解析:把Git提交历史玩明白的开发者神器

写在前面&#xff1a;无论是个人开发还是团队协作&#xff0c;Git早已是开发者的标配工具。但90%的开发者都踩过同一个Git的坑&#xff1a;对着命令行里密密麻麻的提交记录发呆&#xff0c;看不懂多分支的分叉与合并流向&#xff0c;想回滚版本却找不到对应的commit&#xff0c…...

为什么你的Agent总在Adobe全家桶前卡死?:独家披露Adobe UXP沙箱逃逸+DOM Bridge双向通信协议逆向成果

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Adobe UXP沙箱机制与Agent操作失能的根源诊断 Adobe UXP&#xff08;Unified Extensibility Platform&#xff09;为插件提供了强隔离的运行时沙箱环境&#xff0c;其核心设计目标是保障宿主应用&#…...

保姆级教程:手把手拆解Android相机启动流程,从点击图标到预览画面发生了什么?

从点击到成像&#xff1a;Android相机启动全链路技术解析 当你在旅行中突然发现值得记录的瞬间&#xff0c;手指本能地点击相机图标的那一刻&#xff0c;手机内部其实已经触发了一场精密协作的"交响乐演出"。作为Android开发者&#xff0c;理解这套从用户界面直达硬件…...

NotebookLM笔记生产力跃迁(仅限前500名早鸟用户的动态模板库已开放)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;NotebookLM笔记生产力跃迁&#xff08;仅限前500名早鸟用户的动态模板库已开放&#xff09; NotebookLM 正式引入基于语义理解的「上下文感知模板引擎」&#xff0c;早鸟用户可通过专属入口启用动态模板…...