【头歌-Python】9.1 X射线衍射曲线绘制(project)第1~2关

news2024/9/20 16:28:01

第1关:X 射线衍射曲线

任务描述

本关任务:读文件中的数据绘制线图形。

相关知识

为了完成本关任务,你需要掌握:
1.python 读取文件
2.使用 matplotlib 绘制图形

python 读取文件
python读取文件可以用以下函数实现:

def read_file(file):
    """ 读文件file, 返回值为二维列表,其中数据是字符串类型。 """
    with open(file, 'r', encoding='utf-8') as file:
        data_list = [line.strip().split() for line in file]
    return data_list[1:]  # 去掉标题行数据

编程要求

  • 文件下载:
    XRD_AFO.txt
    根据提示,在右侧编辑器中补充代码,绘制 X 射线衍射曲线,使用系统默认颜色与线型。

  • 测试说明
    平台会对你编写的代码进行测试:

  • 输出示例:
    在这里插入图片描述

参考代码

import matplotlib.pyplot as plt

def read_file(file):
    """ 读文件file, 返回值为二维列表,其中数据是字符串类型。 """
    with open(file, 'r') as f:
        data_list = [list(map(eval, line.strip().split())) for line in f.readlines()[1:]]
    	return data_list

def plot_xrd(data_list):
    """接收二维列表为参数,绘制曲线"""
    x = [d[0] for d in data_list]
    y = [d[1] for d in data_list]
    plt.plot(x, y)

if __name__ == '__main__':
    data = read_file('XRD_AFO.txt')
    plot_xrd(data)
    plt.savefig('result/result.jpg')
    plt.show()

第2关:X 射线衍射曲线标注

任务描述

本关任务:读文件中的数据绘制线图形并加标注。

相关知识

为了完成本关任务,你需要掌握:
1.python 读取文件中的数据
2.使用 matplotlib 绘制图形

python 读取文件
python读取文件可以用以下函数实现:

def read_file(file):
    """ 读文件file, 返回值为二维列表,其中数据是字符串类型。 """
    with open(file, 'r', encoding='utf-8') as file:
        data_list = [line.strip().split() for line in file]
    return data_list

编程要求

根据提示,在右侧编辑器 Begin-End 区间中补充代码,绘制 X 射线衍射曲线。具体要求如下:

  1. 图名为“X射线衍射图谱”
  2. 纵坐标标签为“Intensity”,横坐标标签为“2d”,
  3. 设置线颜色为“红色”,实线。
  4. 绘制蓝色破折线为纵坐标轴、红色破折线为横坐标轴,
  5. 要求中文显示正常,宋体’SimSun’,字号用默认值。

测试说明

平台会对你编写的代码进行测试:

输出示例(仅供参考,按题目要求绘图):
在这里插入图片描述

参考代码

import matplotlib.pyplot as plt

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

def read_file(file):
    """ 读文件file, 返回值为二维列表,其中数据是字符串类型。 """
    with open(file, "r") as f:
        data_list = [list(map(eval, line.strip().split())) for line in f.readlines()[1:]]
    	return data_list

def plot_xrd(data_list):
    """接收二维列表为参数,绘制曲线,红色实线"""
    x = [d[0] for d in data_list]
    y = [d[1] for d in data_list]
    plt.plot(x, y, 'r')

def add_label():
    """增加坐标轴标识与图名"""
    plt.axhline(0, linestyle='--', color='b')
    plt.axvline(0, linestyle='--', color='r')
    plt.title("X射线衍射图谱")
    plt.xlabel("2d")
    plt.ylabel("intensity")

if __name__ == '__main__':
    data = read_file('XRD_AFO.txt')
    plot_xrd(data)
    add_label()
    plt.savefig('result/result.jpg')
    plt.show()

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

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

相关文章

华为OD机试真题 JavaScript 实现【记负均正】【牛客练习题】

一、题目描述 首先输入要输入的整数个数n,然后输入n个整数。输出为n个整数中负数的个数,和所有正整数的平均值,结果保留一位小数。 0即不是正整数,也不是负数,不计入计算。如果没有正数,则平均值为0。 数…

计算机网络3(网络层)

目录 1.网络层的作用 2.网际协议的四个协议 3.IP地址 4.IP地址的组成 5.IP地址的分类 6.IP地址 1.网络层的作用 寻址和路由的选择,连接的建立和终止,提供端到端的服务 单位是分组 2.网际协议的四个协议 ARP地址解析协议 :根据IP地址获取…

PortSwigger web缓存中毒(Cache Poisoning)

一、什么web缓存中毒? Web缓存中毒(Web Cache Poisoning)是一种攻击技术,攻击者通过操纵Web应用程序的缓存系统,将恶意或欺骗性内容注入到合法的缓存中,以欺骗用户或绕过安全控制。 Web缓存中毒的原理是利用…

Web UI 自动化测试框架哪个更适合你?

最近,项目上出于系统性稳定性、减少测试工作量考虑,打算在 Web 前端引入 BDD。由于上一个项目写了一定的 Cucumber 代码(BDD 测试框架之一),这个框架选型的责任便落到了我的肩膀上了。 在我们进行框架选型的时候&…

执行器-Query 执行详解

一、主要流程 本期主要为大家分享,在经过语法、词法分析并生成 AST 语法树后的执行流程,下图是完整流程展示: 图 1 整体流程图 一个 Query 语句执行,从 connExecutor 接收,再到解析完成的 AST 语法树,最后…

【哈希表part01】| 242.有效的字母异位词、349.两个数组的交集、202.快乐数、1.两数之和

目录 ✿LeetCode242.有效的字母异位词❀ ✿LeetCode349.两个数组的交集❀ ✿LeetCode202.快乐数❀ ✿LeetCode1.两数之和❀ ✿LeetCode242.有效的字母异位词❀ 链接:242.有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的…

如何进行弱网测试?专项测试中最实用的方法了解一下……

目录 引言 一、什么是弱网测试? 二、为何要进行弱网测试? 三、如何做弱网测试? 四、弱网测试工具 引言 如今这个高度互联的时代里,网络环境对于应用程序的影响越来越重要。 而弱网测试就是用来检验应用程序在恶劣网络环境下…

AIGC与AidLux互联应用——AidLux端AIGC评测

使用diffusers生成图片,再通过socket编程完成pc端与AidLux之间通信,把生成的图像上传服务端,最后通过yolov5模型对生成的图像进行评测 视频流程如下: AIGC与AidLux互联应用——AidLux端AIGC评测 生成图片如图所示:

Redis的Java客户端-Java客户端以及SpringDataRedis的介绍与使用

1. Redis的Java客户端 Spring Data Redis底层支持同时兼容Jedis和Lettuce两种不同的Redis客户端,可以根据需要任意选择使用其中的一种。这样既可以保留现有代码使用的Jedis方式,也可以通过使用基于Netty的高性能Lettuce客户端,提升应用的性能…

【RabbitMQ教程】前言 —— 中间件介绍

💧 【 R a b b i t M Q 教程】前言——中间件介绍 \color{#FF1493}{【RabbitMQ教程】前言 —— 中间件介绍} 【RabbitMQ教程】前言——中间件介绍💧 🌷 仰望天空,妳我亦是行人.✨ 🦄 个人主页——微风撞见云…

MySQL数据库基础 10

第十章 创建和管理表 1. 基础知识1.1 一条数据存储的过程1.2 标识符命名规则1.3 MySQL中的数据类型 2. 创建和管理数据库2.1 创建数据库2.2 使用数据库2.3 修改数据库2.4 删除数据库 3. 创建表3.1 创建方式13.2 创建方式23.3 查看数据表结构 4. 修改表4.1 追加一个列4.2 修改一…

Vue2模拟俄罗斯方块小游戏

目录 一、效果展示 二、代码分享 三、原理分析 3.1、界面搭建 3.2、方块创建 3.3、方块旋转 3.4、方块移动 3.5、移动判断 3.6、下落判断与清除 3.7、得分计算 一、效果展示 二、代码分享 <template><div class"game"><div class"ga…

调整IoTDB堆内存

最关键的是 MAX_DIRECT_MEMORY_SIZE &#xff0c;他等于MAX_HEAP_SIZE变量。 再往上翻又等于 max_heap_size_in_mb M大小 继续上翻 system_memory_in_mb 很明显就是系统内存&#xff0c;单位是M quarter_ 四分之一内存&#xff0c; half_ 一半内存。 假设物理内存为8G&a…

PMP证书含金量如何?到底有啥用处?

01PMP是什么&#xff1f; | PMP是指项目管理专业人士资格认证。 | 美国项目管理协会&#xff08;PMI&#xff09;举办的项目管理专业人员&#xff08;PMP&#xff09;认证考试。 | 是目前项目管理领域含金量很高的认证。 国内很多媒体也把PMP称为继MBA、MPA之后的三大金字招…

KW 新闻 | KaiwuDB 发布智慧矿山解决方案

5月21日&#xff0c;天津第七届世界智能大会&#xff08;WIC&#xff09;圆满落幕。作为智能领域的国家级盛会&#xff0c;WIC 汇聚了全球知名院士、顶级学者、产业领袖分享先进技术和实践经验&#xff0c;推进智能技术创新合作。KaiwuDB 受邀出席大会并正式发布智慧矿山解决方…

软件测试现状以及行业分析

大家都知道最近 ChatGPT 爆火&#xff0c;国外巨头争相宣布自己的相关计划&#xff0c;国内有点实力的企业也在亦步亦趋地跟进。不出意料的是&#xff0c;关于测试职业要被淘汰的话题又&#xff08;为什么要说又&#xff1f;&#xff09;在扎堆出现&#xff0c;内容跟之前还是大…

“大模型+小模型”新纪元开启,AI基础软件定义AI未来

5月30日&#xff0c;由中国信息通信研究院、浙江省经济和信息化厅、杭州市人民政府、中国人工智能产业发展联盟主办的“杭州通用人工智能论坛”盛大召开。杭州市人民政府党组成员、副市长孙旭东&#xff0c;浙江省经信厅总工程师李永伟&#xff0c;中国信息通信研究院党委副书记…

检索项目中冗余的图片

说在前面 平时在项目中我们会使用到一些图片&#xff0c;很多时候我们会直接将图片打包到项目中去&#xff0c;随着项目的更新迭代&#xff0c;我们可能会删除一些图片的引用&#xff0c;但没将图片源文件删除&#xff0c;这个时候没有被引用到的图片就会成为冗余的文件&#…

一位十年测试的修炼之路,希望能帮你点清现实

对于刚进入软件测试工作岗位的新人&#xff0c;如何快速、健康的在职业道路上成长&#xff0c;作者谈了几点自己看法&#xff1a; 1、兴趣是最好的老师 对于软件测试工作&#xff0c;通常是比较枯燥的&#xff0c;如果没有兴趣很难做到持久。 我最近参与了一个软件测试项目&a…

Android AIDL跨进程通信

一、前言 什么是AIDL&#xff1f;AIDL用来做什么的&#xff1f;怎么使用AIDL&#xff1f; AIDL是Android的一种接口定义语言&#xff0c;语法跟java接口定义类似&#xff0c;文件格式为 .aidl 非 .java 。AIDL主要是用来实现跨进程通信&#xff0c;AIDL的本质也是通过Binder机…