【头歌-Python】Python第九章作业(初级)第 1、2、4 关

news2025/2/3 7:49:32

第1关:绘制温度曲线

任务描述

附件中是某月每天的最高温度和最低温度数据,请绘制本月的高温曲线(红色、圆点标记坐标)和低温曲线(蓝色、星号标记坐标),线型、刻度如输出示例所示,线宽度默认值,并设置图表标题为"9月温度曲线图",标题字体为宋体(‘SimSun’),默认字号。

plt.rcParams['font.sans-serif'] = ['SimSun']
plt.rcParams['axes.unicode_minus'] = False

要求程序代码运行无误,按要求绘制温度曲线并保存为图片。

输入格式

该题目没有输入

输出格式

绘制结果写入文件’temp_curve.png’中

下图为示意图,具体效果需严格按照题目要求设置
在这里插入图片描述

参考代码

import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['axes.unicode_minus'] = False
plt.rcParams['font.sans-serif'] = ['SimSun']

with open('step2/9.1 某月温度.txt', 'r', encoding='utf-8') as f:
    data = []
    for lines in f.readlines():
        data.append(list(map(int, lines.split())))
    x = [d[0] for d in data]
    y1 = [d[1] for d in data]
    y2 = [d[2] for d in data]

    plt.plot(x, y1, color = 'r', marker='o')
    plt.plot(x, y2, color = 'b', marker='*')
    plt.xticks(list(range(1, 32)))
    plt.yticks(list(range(-10, 30, 5)))
    plt.axhline(0, linestyle='--', color='b')
    plt.title('9月温度曲线图')
    plt.savefig('output/temp_curve.png')
    plt.show()

第2关:分态密度图

任务描述

根据附件中的数据文件绘制分态密度图,在同一个图中绘制多条曲线,数据中第一列为横坐标值,后面各列为纵坐标值,第一列与后面的每一列的数据组合可绘制一条态密度曲线,未明确要求的线型和宽度使用默认值。

评分标准

  1. 绘制如输出示例所示的态密度曲线图
  2. 在 x 值为 0 处绘制平行于 y 轴直线,线型为破折线,红色,线宽为1
  3. 设置线条颜色依次为 ‘blue’, ‘green’, ‘red’, ‘purple’,‘gray’,‘Navy’,‘violet’,‘Gold’,‘Black’
  4. x 轴加标签 “E-Ev(eV)”,y 轴加标签 “DOS”
  5. 增加图名 “BaTiO3 分态密度曲线图”,中文字体为宋体’SimSun’,字号用默认值,要求保证中文正常显示

输入输出示例

(示例图与本题数据与要求不同,仅供参考)
在这里插入图片描述

参考代码

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimSun']
plt.rcParams['axes.unicode_minus'] = False

color = ['blue', 'green', 'red', 'purple','gray','Navy','violet','Gold','Black']
with open('step3/DOS_SUM.txt', 'r', encoding='utf-8') as f:
	data = []
    for lines in f.readlines():
    	data.append([line for line in lines.strip().split() if line!=''])
    for i in range(9):
        x = [float(d[0]) for d in data]
        y = [float(d[i+1]) for d in data]
        plt.plot(x, y, color=color[i])
        
    plt.axvline(0, linestyle='--', c='red', linewidth=1)
    plt.xlabel("E-Ev(eV)")
    plt.ylabel("DOS")
    plt.title("BaTiO3 分态密度曲线图")
    plt.savefig("output/stu.png")  
    plt.show()

第4关:态密度曲线绘制

任务描述

根据附件中的数据,绘制如下图所示的态密度曲线:

  1. 基本曲线
  2. x,y轴刻度范围根据数据自动产生
  3. 线型用实线,曲线颜色为红色,x轴坐标标题为Energy(Ha),y轴坐标标题为Density of States(electrons/Ha)

输入格式

此题无输入

输出格式

要求本地调试、运行、绘制图形。

示例输出仅供参考
在这里插入图片描述

参考代码

import matplotlib.pyplot as plt

with open('step5/DosOfBaTiO3.txt', 'r', encoding='utf-8') as f:
    data = []
    for lines in f.readlines():
        data.append(list(map(float, lines.strip().split('\t'))))
    x, y = [], []
    for d in data:
        x.append(d[0])
        y.append(d[1])

    plt.plot(x, y, color='r', linewidth=1)
    plt.xlabel('Energy(Ha)')
    plt.ylabel('Density of States(electrons/Ha)')
    plt.savefig('output/exam.png')
    plt.show()

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

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

相关文章

Rust每日一练(Leetday0031) 解码方法、复原 IP 地址

目录 91. 解码方法 Decode Ways 🌟🌟 93. 复原 IP 地址 Restore IP Addresses 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 91. …

chatgpt赋能python:Python如何求平均

Python如何求平均 Python是一种非常流行的编程语言,它被广泛应用于各种领域,包括科学计算、数据分析、Web开发等。在这篇文章中,我们将介绍如何使用Python求平均值。 什么是平均数 平均数,也称为均值,是指一组数据的…

chatgpt赋能python:Python怎么求平均值?全面解析平均值计算方法

Python怎么求平均值?全面解析平均值计算方法 作为一种简洁易用的计算机编程语言,Python的应用范围已经越来越广泛。在Python中,我们可以轻松地进行各种统计和计算工作,其中求平均值是最常见的计算之一。在本文中,我们…

Redis过期策略

Redis 使用的过期删除策略是什么? Redis 是可以对 key 设置过期时间的,因此需要有相应的机制将已过期的键值对删除,而做这个工作的就是过期键值删除策略。 每当我们对一个 key 设置了过期时间时,Redis 会把该 key 带上过期时间存…

Redis 持久化-RDB和 持久化-AOF 的详细介绍以及区别

Redis 持久化-RDB 官方资料 在线文档: https://redis.io/topics/persistence 持久化方案 RDB(Redis DataBase) AOF(Append Of File) RDB 是什么? 在指定的时间间隔内将内存中的数据集快照写入磁盘, 也就Snapsh…

java中获取配置文件路径中含有中文,出现乱码的情况解决方案

问题背景:读取配置文件,但是读到的目录信息是中文乱码的。 第一步: 参考代码如上截图,方法即:读取jdbc配置,获取了配置文件(jdbc.properties)地址,然后加载这个文件读取…

chatgpt赋能python:Python中如何消除空格:从基础操作到高级技巧

Python中如何消除空格:从基础操作到高级技巧 Python是一种广泛使用的编程语言,深受许多工程师和开发者的喜爱。其中一个有用的技巧是如何消除字符串中的空格,特别是在处理和分析文本时。在本文中,我们将介绍三种不同的方法来解决…

springboot+vue+java学生选课成绩系统awwm9

主要内容: (1) 系统用户由三类组成:教师、学生和管理员 (2) 管理员负责的主要功能: 1. 用户进入登录界面,输入用户名,密码,选择管理员用户类型,然后点击“登录”按钮,后台验证…

Linux系统:stress-ng测压工具

目录 一、理论 1.stress工具简介与安装 2.语法及参数 3.具体安装 二、实验 1.运行8 cpu, 4 fork, 5 hdd, 4 io, 50 vm, 10小时 2.CPU测试 3.内存测试 4.IO测试 5.磁盘及I/O测试 三、问题 1. -bash: ./configure: 没有那个文件或目录 2. 下载yum源报错:未…

读发布!设计与部署稳定的分布式系统(第2版)笔记03_让系统稳定运行

1. 概念 1.1. 事务 1.1.1. 系统处理的抽象工作单元 1.1.1.1. 与数据库事务不同 1.1.1.2. 单个工作单元可能包含许多数据库事务 1.1.2. 系统存在的原因 1.1.2.1. 如果一个系统只能处理一种事务,那么它就是专用系统 1.1.2.2. 混合工作负载是系统能处理的不同事…

从 Google 删库,到蚂蚁跑路,Care 与 Fear 点燃的 Flare

Bytebase 第一次完成融资后写了一篇文章,主要讲了从行业层面做 Bytebase 的逻辑。一年过去了,这一年我们所处的开源/infra/数据库/企业服务赛道从热点归于平静,尤其在国内,又习惯性地反应过度,直接降到冰点。但从全球来…

学习PLC时为什么要学习上位机?

PLC是一种常用于工业自动化控制系统的设备。它用于监控和控制各种机器和过程,以实现自动化和优化生产。 学习PLC的过程中,了解和学习上位机是非常重要的。上位机是与PLC连接的计算机,它可以通过特定的软件与PLC进行通信、监控和控制。 以下…

【RabbitMQ教程】第七章 —— RabbitMQ - 发布确认高级

💧 【 R a b b i t M Q 教程】第七章—— R a b b i t M Q − 发布确认高级 \color{#FF1493}{【RabbitMQ教程】第七章 —— RabbitMQ - 发布确认高级} 【RabbitMQ教程】第七章——RabbitMQ−发布确认高级💧 🌷 仰望天空&#xff0c…

分布式ID解决方案

常用的分布式 ID 的设计方案有哪些?Snowflake 是否受冬令时切换影响? 典型回答 首先,我们需要明确通常的分布式 ID 定义,基本的要求包括: 全局唯一,区别于单点系统的唯一,全局是要求分布式系…

NLP——Information Extraction信息提取

文章目录 Information Extraction 步骤Named Entity Recognition (NER)Typical Entity Tags 典型实体标签IO taggingIOB tagging神经网络做 NER Relation ExtractionRule-basedSupervised Relation ExtractionSemi-supervisedSemantic Drift 语义漂移Distant supervision 远程监…

chatgpt赋能python:在Python中添加NumPy

在Python中添加NumPy Python是一种功能强大且广泛使用的编程语言。它被广泛用于数据科学、人工智能和机器学习等领域。NumPy是一种用于数学和科学计算的Python库。本文将介绍在Python中如何添加NumPy库。 什么是NumPy? NumPy是一个开源的Python库,它提供了大量的…

ROCKETMQ极简介绍,顺序,事务示例

整体架构 Name Server 管理Broker实例的注册,提供心跳检测机制 路由管理: Producer和Conumser通过NameServer可以获取整个Broker集群的路由信息 生产者 Producer 以生产者组的形式出现,一个生产者组可以同时发送多个主题的消息 Broker …

计算机组成原理 之 第五章 中央处理器

1. CPU的功能和基本结构 (1-1)运算器的基本结构 a. 寄存器与ALU通讯方式一:专用数据通路方式 是专用数据通路方式(并行传递) 多路选择器(MUX)或三态门 b. 寄存器与ALU通讯方式二:CP…

chatgpt赋能python:Python中添加SEO元素的实践

Python中添加SEO元素的实践 在SEO(Search Engine Optimization)优化中,添加正确的SEO元素对网站的排名和可见性至关重要。Python作为一种广泛应用于网络开发的编程语言,提供了许多用于添加和管理SEO元素的工具和技术。在这篇文章…