Python实用记录(九):将不同的图绘制在一起、将不同txt文档中的数据绘制多条折线图

简介: 这篇文章介绍了如何使用Python的OpenCV库将多张图片合并为一张图片显示,以及如何使用matplotlib库从不同txt文档中读取数据并绘制多条折线图。

1.将不同的图绘制在一起

import cv2
import numpy as np

def mul_pics(img1,img2,img3,img4,img5,img6,img7,img8):
    """为了结合多张图绘制成一张图 利用 np.hstack、np.vstack实现一幅图像中显示多幅图片"""
    results = (img1,img2,img3,img4)
    results1 = (img5,img6,img7,img8)
    # np.hstack()将两个数组按列放到一起
    line1 = np.hstack(results[:2])
    line2 = np.hstack(results[2:4])
    line3 = np.hstack(results1[:2])
    line4 = np.hstack(results1[2:4])
    combined = np.vstack([line1, line2])  # 将多个数组按行放到一起
    combined1 = np.vstack([line3, line4])  # 将多个数组按行放到一起
    cv2.namedWindow('Result', cv2.WINDOW_NORMAL)
    cv2.namedWindow('Result1', cv2.WINDOW_NORMAL)
    cv2.imshow('Result', combined)
    cv2.imshow('Result1', combined1)
    cv2.imwrite('F:\epycharm\HSB_match\pic\Result_a1_a4.jpg',combined)
    cv2.imwrite('F:\epycharm\HSB_match\pic\Result_a4_a8.jpg',combined1)
    cv2.waitKey(0)

# img1 = cv2.imread('F:\epycharm\HSB_match\pic\A1.png',cv2.IMREAD_COLOR)
# img2 = cv2.imread('F:\epycharm\HSB_match\pic\A2.png',cv2.IMREAD_COLOR)
# img3 = cv2.imread('F:\epycharm\HSB_match\pic\A3.png',cv2.IMREAD_COLOR)
# img4 = cv2.imread('F:\epycharm\HSB_match\pic\A4.png',cv2.IMREAD_COLOR)
# img5 = cv2.imread('F:\epycharm\HSB_match\pic\A5.png',cv2.IMREAD_COLOR)
# img6 = cv2.imread('F:\epycharm\HSB_match\pic\A6.png',cv2.IMREAD_COLOR)
# img7 = cv2.imread('F:\epycharm\HSB_match\pic\A7.png',cv2.IMREAD_COLOR)
# img8 = cv2.imread('F:\epycharm\HSB_match\pic\A8.png',cv2.IMREAD_COLOR)
# mul_pics(img1,img2,img3,img4,img5,img6,img7,img8)
AI 代码解读

2.将不同txt文档中的数据绘制多条折线图

在这里插入图片描述

import matplotlib.pyplot as plt

file = open('F:\epycharm\HSB_match\excel_file\决策树.txt')  #决策
file1 = open('F:\epycharm\HSB_match\excel_file\随机森林20.txt')  #随机-20
file2 = open('F:\epycharm\HSB_match\excel_file\随机森林25.txt')  #随机-25
file3 = open('F:\epycharm\HSB_match\excel_file\随机森林30.txt')  #随机-30

data = file.readlines() #读取文档数据
data1 = file1.readlines() #读取文档数据
data2 = file2.readlines() #读取文档数据
data3 = file3.readlines() #读取文档数据

para_1 = []  #新建列表,决策
para_2 = []  #新建列表,随机-25
para_3 = []  #新建列表,随机-20
para_4 = []  #新建列表,随机-30
for num in data:
    # split用于将每一行数据用逗号分割成多个对象
    #取分割后的第0列,转换成float格式后添加到para_1列表中
    para_1.append(float(num.split(',')[0]))
for num in data1:
    # split用于将每一行数据用逗号分割成多个对象
    # 取分割后的第0列,转换成float格式后添加到para_1列表中
    para_2.append(float(num.split(',')[0]))
for num in data2:
    # split用于将每一行数据用逗号分割成多个对象
    #取分割后的第0列,转换成float格式后添加到para_1列表中
    para_3.append(float(num.split(',')[0]))
for num in data3:
    # split用于将每一行数据用逗号分割成多个对象
    #取分割后的第0列,转换成float格式后添加到para_1列表中
    para_4.append(float(num.split(',')[0]))

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
para_1.sort()
# for i in range(len(para_1)):
#     f = open('F:\epycharm\HSB_match\excel_file\data2.txt', 'a')
#     f.write(str(i))
#     f.write('\n')
#
para_2.sort()
para_3.sort()
print(min(para_1))
print(max(para_1))
print('............')
print(min(para_2))
print(max(para_2))
print('............')
print(min(para_3))
print(max(para_3))
print('............')
para_4.sort()

# for i in range(len(para_2)):
#     f = open('F:\epycharm\HSB_match\excel_file\data3.txt', 'a')
#     f.write(str(i))
#     f.write('\n')
plt.figure()
plt.xlabel('steps', fontsize=10)  # x轴表示
plt.ylabel('R2_score', fontsize=10)  # y轴表示
plt.title('决策树R2分数对比图')
plt.plot(para_1,markerfacecolor='r',label='决策树')
plt.plot(para_2,markerfacecolor='b',label='随机森林-20')
plt.plot(para_3,markerfacecolor='b',label='随机森林-25')
# plt.plot(para_4,markerfacecolor='b',label='随机森林-30')
plt.legend()
plt.show()
AI 代码解读

如果对于一行有两个数据

def loadData0(flieName1, flieName2):
    inFile1 = open(flieName1, 'r')  # 以只读方式打开某fileName文件
    inFile2 = open(flieName2, 'r')
    # 定义两个空list,用来存放文件中的数据
    x = []
    y = []

    for index, line in enumerate(inFile1):
        x.append(float(line))
    for index, line in enumerate(inFile2):
        y.append(float(line))

    return x, y  # 注意,若返回的为元组(x, y),则画图的时候python不能区分大小
AI 代码解读
目录
打赏
0
3
3
0
85
分享
相关文章
【Azure Developer】分享两段Python代码处理表格(CSV格式)数据 : 根据每列的内容生成SQL语句
本文介绍了使用Python Pandas处理数据收集任务中格式不统一的问题。针对两种情况:服务名对应多人拥有状态(1/0表示),以及服务名与人名重复列的情况,分别采用双层for循环和字典数据结构实现数据转换,最终生成Name对应的Services列表(逗号分隔)。此方法高效解决大量数据的人工处理难题,减少错误并提升效率。文中附带代码示例及执行结果截图,便于理解和实践。
如何在Python下实现摄像头|屏幕|AI视觉算法数据的RTMP直播推送
本文详细讲解了在Python环境下使用大牛直播SDK实现RTMP推流的过程。从技术背景到代码实现,涵盖Python生态优势、AI视觉算法应用、RTMP稳定性及跨平台支持等内容。通过丰富功能如音频编码、视频编码、实时预览等,结合实际代码示例,为开发者提供完整指南。同时探讨C接口转换Python时的注意事项,包括数据类型映射、内存管理、回调函数等关键点。最终总结Python在RTMP推流与AI视觉算法结合中的重要性与前景,为行业应用带来便利与革新。
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
淘宝商品详情API的调用流程(python请求示例以及json数据示例返回参考)
JSON数据示例:需要提供一个结构化的示例,展示商品详情可能包含的字段,如商品标题、价格、库存、描述、图片链接、卖家信息等。考虑到稳定性,示例应基于淘宝开放平台的标准响应格式。
python 从txt导数据到mysql
!/usr/bin/python encoding:utf-8 import MySQLdb db = MySQLdb.connect("127.0.0.
915 0
Python 高级编程与实战:深入理解性能优化与调试技巧
本文深入探讨了Python的性能优化与调试技巧,涵盖profiling、caching、Cython等优化工具,以及pdb、logging、assert等调试方法。通过实战项目,如优化斐波那契数列计算和调试Web应用,帮助读者掌握这些技术,提升编程效率。附有进一步学习资源,助力读者深入学习。
[oeasy]python081_ai编程最佳实践_ai辅助编程_提出要求_解决问题
本文介绍了如何利用AI辅助编程解决实际问题,以猫屎咖啡的购买为例,逐步实现将购买斤数换算成人民币金额的功能。文章强调了与AI协作时的三个要点:1) 去除无关信息,聚焦目标;2) 将复杂任务拆解为小步骤,逐步完成;3) 巩固已有成果后再推进。最终代码实现了输入验证、单位转换和价格计算,并保留两位小数。总结指出,在AI时代,人类负责明确目标、拆分任务和确认结果,AI则负责生成代码、解释含义和提供优化建议,编程不会被取代,而是会更广泛地融入各领域。
51 28
Python 高级编程与实战:深入理解数据科学与机器学习
本文深入探讨了Python在数据科学与机器学习中的应用,介绍了pandas、numpy、matplotlib等数据科学工具,以及scikit-learn、tensorflow、keras等机器学习库。通过实战项目,如数据可视化和鸢尾花数据集分类,帮助读者掌握这些技术。最后提供了进一步学习资源,助力提升Python编程技能。
|
16天前
|
[oeasy]python074_ai辅助编程_水果程序_fruits_apple_banana_加法_python之禅
本文回顾了从模块导入变量和函数的方法,并通过一个求和程序实例,讲解了Python中输入处理、类型转换及异常处理的应用。重点分析了“明了胜于晦涩”(Explicit is better than implicit)的Python之禅理念,强调代码应清晰明确。最后总结了加法运算程序的实现过程,并预告后续内容将深入探讨变量类型的隐式与显式问题。附有相关资源链接供进一步学习。
26 4

热门文章

最新文章