python之绘制曲线

news2024/11/25 0:36:19

以同一种型号的钻头,钻21种类型的板材,每种板材使用3根钻头,分别在钻第一个孔、2001孔、4001孔和6001孔前测量钻头外径,收集数据。

1、测试方法

采用激光钻径分选机测量微钻钻径以评估微钻外径磨损,测量从钻尖起始间隔为0.02mm的16个点外径值,通过未使用微钻和使用后微钻的刃径差评估外径磨损量。

2、原始数据

2.1 d:\Documents\F1-21\new.txt

以空格间隔的21行数据,每行为一根钻头的外径数据

0.0000	0.1164	0.1525	0.1549	0.1553	0.1552	0.1551	0.1552	0.1546	0.1548	0.1545	0.1540	0.1538	0.1539	0.1543	0.1539
0.1241	0.1568	0.1572	0.1557	0.1555	0.1553	0.1555	0.1557	0.1553	0.1550	0.1548	0.1545	0.1545	0.1544	0.1543	0.1542
0.1402	0.1541	0.1555	0.1556	0.1558	0.1566	0.1583	0.1555	0.1552	0.1548	0.1548	0.1548	0.1546	0.1546	0.1546	0.1541
0.1154	0.1490	0.1537	0.1559	0.1552	0.1547	0.1548	0.1552	0.1550	0.1547	0.1543	0.1542	0.1540	0.1540	0.1539	0.1537
0.0000	0.1391	0.1534	0.1559	0.1570	0.1558	0.1557	0.1555	0.1554	0.1558	0.1564	0.1615	0.1579	0.1594	0.1630	0.1560
0.0000	0.1224	0.1516	0.1550	0.1558	0.1555	0.1558	0.1556	0.1552	0.1550	0.1548	0.1543	0.1547	0.1545	0.1546	0.1543
0.1149	0.1519	0.1543	0.1553	0.1556	0.1554	0.1552	0.1550	0.1549	0.1545	0.1544	0.1542	0.1542	0.1543	0.1542	0.1536
0.0000	0.1317	0.1602	0.1635	0.1623	0.1608	0.1558	0.1555	0.1561	0.1570	0.1551	0.1539	0.1537	0.1538	0.1539	0.1534
0.0000	0.1276	0.1520	0.1554	0.1561	0.1555	0.1555	0.1552	0.1548	0.1547	0.1546	0.1544	0.1544	0.1542	0.1543	0.1542
0.0000	0.1300	0.1583	0.1694	0.1623	0.1558	0.1557	0.1556	0.1554	0.1551	0.1546	0.1547	0.1547	0.1547	0.1549	0.1545
0.1008	0.1468	0.1546	0.1563	0.1562	0.1556	0.1556	0.1556	0.1555	0.1550	0.1550	0.1548	0.1551	0.1548	0.1549	0.1557
0.1408	0.1541	0.1559	0.1560	0.1560	0.1559	0.1561	0.1579	0.1567	0.1551	0.1551	0.1548	0.1548	0.1548	0.1548	0.1545
0.0000	0.1350	0.1532	0.1559	0.1559	0.1554	0.1552	0.1552	0.1551	0.1546	0.1547	0.1546	0.1546	0.1546	0.1543	0.1546
0.0000	0.1341	0.1532	0.1556	0.1556	0.1553	0.1552	0.1552	0.1549	0.1552	0.1554	0.1542	0.1541	0.1540	0.1542	0.1540
0.0000	0.1237	0.1515	0.1548	0.1552	0.1551	0.1550	0.1552	0.1548	0.1546	0.1541	0.1539	0.1540	0.1538	0.1540	0.1538
0.1022	0.1457	0.1539	0.1556	0.1555	0.1548	0.1550	0.1551	0.1551	0.1547	0.1545	0.1544	0.1543	0.1543	0.1541	0.1540
0.0000	0.1382	0.1541	0.1558	0.1556	0.1555	0.1554	0.1558	0.1554	0.1553	0.1551	0.1549	0.1554	0.1546	0.1548	0.1545
0.0000	0.1218	0.1517	0.1553	0.1559	0.1559	0.1556	0.1555	0.1551	0.1547	0.1549	0.1544	0.1544	0.1545	0.1542	0.1540
0.1437	0.1537	0.1552	0.1556	0.1557	0.1556	0.1556	0.1556	0.1554	0.1552	0.1550	0.1546	0.1545	0.1544	0.1540	0.1541
0.1244	0.1529	0.1591	0.1573	0.1559	0.1563	0.1558	0.1557	0.1552	0.1551	0.1547	0.1541	0.1543	0.1544	0.1544	0.1545
0.0000	0.1348	0.1531	0.1552	0.1556	0.1556	0.1556	0.1557	0.1550	0.1544	0.1544	0.1542	0.1543	0.1541	0.1543	0.1541

2.2 d:\Documents\F1-21\f21.txt

以空格为间隔的21×9行数据,21代表板材类型,9代表一种板材对应3根钻头的2K、4K、6K孔数据

3、代码绘图

from pylab import *
srcpath1=r'd:\Documents\F1-21\new.txt'
srcpath2=r'd:\Documents\F1-21\f21.txt'

def openreadtxt(file_name):
    data = []
    with open(file_name, 'r') as file:
        file_data = file.readlines()  # 读取所有行
        for row in file_data:
            tmp_list = row.split()
            tmp = [float(x) for x in tmp_list]
            data.append(tmp)  # 将每行数据插入data中
    return data
if __name__ == "__main__":
    data_new=openreadtxt(srcpath1)
    data_f21=openreadtxt(srcpath2)
    xs=np.linspace(0.02,0.32,16)
    ys_new=np.zeros(16)
    data_2k=[]
    data_4k=[]
    data_6k=[]
    for i in range(len(data_new)):
        ys_new+=np.array(data_new[i])
    ys_new=ys_new/len(data_new)
    for i in range(21):
        temp_2k = np.zeros(16)
        temp_4k = np.zeros(16)
        temp_6k = np.zeros(16)
        for j in range(9):
            if j<3:
                temp_2k+=np.array(data_f21[i*9+j])
            elif j<6:
                temp_4k+=np.array(data_f21[i*9+j])
            else:
                temp_6k+=np.array(data_f21[i*9+j])
        data_2k.append(temp_2k/3)
        data_4k.append(temp_4k/3)
        data_6k.append(temp_6k/3)

    fig=plt.figure(figsize=(5,4))
    plt.rcParams['xtick.direction'] = 'in'  # 将x周的刻度线方向设置向内
    plt.rcParams['ytick.direction'] = 'in'  # 将y轴的刻度方向设置向内
    # plt.rcParams['font.family'] = ["Times New Roman"]  # 字体设置为Times NewRoman
    plt.rcParams['font.sans-serif'] = ['SimHei']
    clist=['blue','red','green','black','slategray','lime','gold','purple','green','cyan']
    markerlst=['o','*','x','>','<','^','D','d','1','2','3','4']
    linestylelst=['-','--','-.',':','-','--','-.',':','-','--','-.',':']
    labellst=['CCL-HL832NSF','CCL-HL832NX','CCL-HL972LF','R-1515W(T)','R-1515W','R-1515A(H)','DS-7409HGB(JE)','DS-7409HGB(ZLEM)','MCL-E-700G','MCL-E-705G','MCL-E-770G','MCL-E-679FG','MCL-HS200','SI13U','SI05NR','SI07NR','SI07NR(LC)','SI10NFK','MCL-E-795G-LH','MCL-E-795G','MCL-E-705G-LH',]
    plt.plot(xs, ys_new,c=clist[9], marker=markerlst[10], markersize='10', linewidth='3', linestyle=linestylelst[10], label='New')
    out=[7,13,19,20]
    for i in range(18):
        if i in out:
            continue
        plt.plot(xs, data_6k[i], c=clist[i%10], marker=markerlst[i%12], markersize='10', linewidth='3', linestyle=linestylelst[i%12], label=labellst[i])

    plt.axhline(y=0.140,color='r',linestyle='--')
    plt.axhline(y=0.156,color='r',linestyle='--')
    font1 = {'family': 'Times New Roman', 'weight': 'normal', 'size': 16}
    # 图例展示位置,数字代表第几象限
    plt.legend(loc=4,prop=font1,ncol=3,framealpha=0.5)
    plt.xticks(xs)
    plt.yticks(np.linspace(0.04,0.16,13))
    plt.grid(True, linestyle='--', alpha=0.5)
    plt.xlabel("到钻尖的距离/mm", fontdict={'size': 16})
    plt.ylabel("钻头外径/mm", fontdict={'size': 16})
    # plt.title("孔限为6000时的外径磨损", fontdict={'size': 20})
    fig.autofmt_xdate()
    plt.show()

    figure1 = fig.get_figure()  # 获取图形
    figure1.savefig(r"d:\Documents\1.tiff", dpi=300)

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

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

相关文章

C语言-文件

目录 1.什么是文件&#xff1f;1.1 程序文件1.2 数据文件 2.二进制文件和文本文件&#xff1f;3.文件的打开和关闭4.文件的顺序读写5.文件的随机读写5.1 fseek5.2 ftell5.3 rewind 6.文件读取结束的判定7.文件缓冲区 1.什么是文件&#xff1f; 磁盘上的文件就是文件 一般包含两…

使用pytorch构建带梯度惩罚的Wasserstein GAN(WGAN-GP)网络模型

本文为此系列的第三篇WGAN-GP&#xff0c;上一篇为DCGAN。文中仍然不会过多详细的讲解之前写过的&#xff0c;只会写WGAN-GP相对于之前版本的改进点&#xff0c;若有不懂的可以重点看第一篇比较详细。 原理 具有梯度惩罚的 Wasserstein GAN (WGAN-GP)可以解决 GAN 的一些稳定性…

caffe源码编译安装

一、前置准备 (1)vs2015 目前不要想着2019这些工具了,成功率太低了,就老老实实用vs2015吧 解决“VS2015安装包丢失或损坏“问题_vs2015跳过包会影响使用吗-CSDN博客 注意在安装vs2015过程中老是出现这个问题,其实就是缺少两个证书,安装完后就可以正常安装vs2015了,注意…

大数据面试专题 -- kafka

1、什么是消息队列&#xff1f; 是一个用于存放数据的组件&#xff0c;用于系统之间或者是模块之间的消息传递。 2、消息队列的应用场景&#xff1f; 主要是用于模块之间的解耦合、异步处理、日志处理、流量削峰 3、什么是kafka&#xff1f; kafka是一种基于订阅发布模式的…

AE——重构数字(Pytorch+mnist)

1、简介 AE&#xff08;自编码器&#xff09;由编码器和解码器组成&#xff0c;编码器将输入数据映射到潜在空间&#xff0c;解码器将潜在表示映射回原始输入空间。AE的训练目标通常是最小化重构误差&#xff0c;即尽可能地重构输入数据&#xff0c;使得解码器输出与原始输入尽…

什么是nginx正向代理和反向代理?

什么是代理&#xff1f; 代理(Proxy), 简单理解就是自己做不了的事情或实现不了的功能&#xff0c;委托别人去做。 什么是正向代理&#xff1f; 在nginx中&#xff0c;正向代理指委托者是客户端&#xff0c;即被代理的对象是客户端 在这幅图中&#xff0c;由于左边内网中…

如何解决kafka rebalance导致的暂时性不能消费数据问题

文章目录 背景思考答案排它故障转移共享 背景 之前在review同组其它业务的时候&#xff0c;发现竟然把kafka去掉了&#xff0c;问了下原因&#xff0c;有一个单独的服务&#xff0c;我们可以把它称为agent&#xff0c;就是这个服务是动态扩缩容的&#xff0c;会采集一些指标&a…

k8s的pod访问service的方式

背景 在k8s中容器访问某个service服务时有两种方式&#xff0c;一种是把每个要访问的service的ip注入到客户端pod的环境变量中&#xff0c;另一种是客户端pod先通过DNS服务器查找对应service的ip地址&#xff0c;然后在通过这个service ip地址访问对应的service服务 pod客户端…

HarmonyOS 应用开发之FA模型访问Stage模型DataShareExtensionAbility

概述 无论FA模型还是Stage模型&#xff0c;数据读写功能都包含客户端和服务端两部分。 FA模型中&#xff0c;客户端是由DataAbilityHelper提供对外接口&#xff0c;服务端是由DataAbility提供数据库的读写服务。 Stage模型中&#xff0c;客户端是由DataShareHelper提供对外接…

腾讯云2核2G服务器优惠价格,61元一年

腾讯云2核2G服务器多少钱一年&#xff1f;轻量服务器61元一年&#xff0c;CVM 2核2G S5服务器313.2元15个月&#xff0c;轻量2核2G3M带宽、40系统盘&#xff0c;云服务器CVM S5实例是2核2G、50G系统盘。腾讯云2核2G服务器优惠活动 txybk.com/go/txy 链接打开如下图&#xff1a;…

java数组与集合框架(三)--Map,Hashtable,HashMap,LinkedHashMap,TreeMap

Map集合&#xff1a; Map接口: 基于 键&#xff08;key&#xff09;/值&#xff08;value&#xff09;映射 Map接口概述 Map与Collection并列存在。用于保存具有映射关系的数据:key-value Map 中的key 和value 都可以是任何引用类型的数据Map 中的key 用Set来存放&#xff0…

X进制减法(蓝桥杯)

文章目录 X进制减法题目描述解题思路贪心算法模拟减法&#xff08;大数相减&#xff09; X进制减法 题目描述 进制规定了数字在数位上逢几进一。 X 进制是一种很神奇的进制&#xff0c;因为其每一数位的进制并不固定&#xff01;例如说某种 X 进制数&#xff0c;最低数位为二…

创建Qt Quick Projects

在创建Qt Quick项目之前&#xff0c;我们简单说一下Qml和Qt Quick的关系&#xff1a;它们的关系类似于C和STL标准库的关系&#xff0c;Qml类比C语言&#xff0c;提供了基本语言特性和类型&#xff1b;而Qt Quick则类比STL标准库&#xff0c;Qt Quick在QML的基础上加入了一系列界…

Https【Linux网络编程】

目录 一、为什么需要https 二、常见加密方法 1、对称加密 2、非对称加密 3、数据指纹 三、选择什么加密方案&#xff1f; 方案一&#xff1a;对称加密&#xff08;&#xff09; 方案二&#xff1a;双方使用非对称加密&#xff08;效率低&#xff09; 方案三&#xff1a…

深度学习十大算法之Diffusion扩散模型

1. 引言 扩散模型在近年来成为了热门话题&#xff0c;其火速蹿红主要归功于在图像生成领域的突破应用。尤其是一些从文本到图像的生成技术&#xff0c;它们成功地运用了扩散模型来创建令人惊叹的逼真图像。如果你听说过某个应用能够迅速且高质量地生成图像&#xff0c;那么很可…

【SpringBoot整合系列】SpirngBoot整合EasyExcel

目录 背景需求发展 EasyExcel官网介绍优势常用注解 SpringBoot整合EaxyExcel1.引入依赖2.实体类定义实体类代码示例注解解释 3.自定义转换器转换器代码示例涉及的枚举类型 4.Excel工具类5.简单导出接口SQL 6.简单导入接口SQL 7.复杂的导出&#xff08;合并行、合并列&#xff0…

docker 共享网络的方式实现容器互联

docker 共享网络的方式实现容器互联 本文以nacos连接mysql为例 前提已经在mysql容器中初始化好nacos数据库&#xff0c;库名nacos 创建一个共享网络 docker network create --driver bridge \ --subnt 192.168.0.0/24 \ --gateway 192.168.0.1 mynet此处可以不指定网络模式、…

Python下载bing每日壁纸并实现win11 壁纸自动切换

前言: 爬虫哪家强,当然是python 我是属于啥语言都用,都懂点,不精通,实际工作中能能够顶上就可以。去年写的抓取bing每日的壁纸&#xff0c;保存到本地&#xff0c;并上传到阿里云oss&#xff0c;如果只是本地壁纸切换&#xff0c;存下来就行&#xff0c;一直想做个壁纸站点&…

Java代码基础算法练习-自定义函数之字符串连接-2024.03.30

任务描述&#xff1a; 写一函数&#xff0c;将两个字符串连接起来&#xff0c;然后在主函数中调用该函数实现字符串连接操作。 任务要求&#xff1a; 代码示例&#xff1a; package M0317_0331;import java.util.Scanner;public class m240330 {public static void main(Stri…

【Java】MyBatis快速入门及详解

文章目录 1. MyBatis概述2. MyBatis快速入门2.1 创建项目2.2 添加依赖2.3 数据准备2.4 编写代码2.4.1 编写核心配置文件2.4.2 编写SQL映射文件2.4.3 编写Java代码 3. Mapper代理开发4. MyBatis核心配置文件5. 案例练习5.1 数据准备5.2 查询数据5.2.1 查询所有数据5.2.2 查询单条…