python+matplotlib 画一个漂亮的折线统计图

news2024/12/26 22:20:21

python+matplotlib 画一个漂亮的折线统计图

有详细的注释说明……

在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as np
import math

def draw_line_chart(Line_data_list,title,pic_name):
    '''

    :param Line_data_list: 折线数据源
    :param title: 图表名称
    :param pic_name: 保存图片名称
    :return:
    '''
    # 设置matplotlib的字体参数以支持中文
    plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置字体为SimHei
    plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题

    text_color = '#ffffff'  # 文字颜色
    canvas_color = '#404040'  # 画布背景颜色  #404040

    # 绘制折线图
    fig=plt.figure(figsize=(19.20, 10.80), facecolor=canvas_color)  # 设置画布大小及颜色
    x_list=[]
    y_list = []
    for Line_data in Line_data_list:
        plt.plot(Line_data['x_list'], Line_data['y_list'], label=Line_data['name'], color=Line_data['color'],linestyle=None) #values are '-', '--', '-.', ':', 'None', ' ', '', 'solid', 'dashed', 'dashdot', 'dotted'
        x_list = Line_data['x_list']
        if len(y_list)==0:
            y_list = Line_data['y_list']


        # 绘制折线图
        # plt.plot(x, RQI, label='RQI', color='#4F81BD')  # 蓝色
        # plt.plot(x, A, label='A', color='#00B050')  # 绿色
        # plt.plot(x, B, label='B', color='#FFC000')  # 橙色
        # plt.plot(x, C, label='C', color='#C00000')  # 红色

    # 修改坐标轴标签的字体颜色
    # plt.xlabel('X Axis', color='#BFBFBF')
    # plt.ylabel('Y Axis', color='#BFBFBF')



    if len(x_list)>100:
        step = math.ceil(len(x_list)/100)  # 最大值 向上取整
        plt.xticks(x_list[::step])
    #gradation=[100]
    max_value = max(y_list+gradation) #y轴列表中取最大值
    max_v=math.ceil(max_value) # 最大值 向上取整

    if max_v>20:
        step = math.ceil(max_v/20)  # 最大值 向上取整
    else:
        step = 0.5  # 最大值 向上取整


    # 设置y轴的刻度间隔
    plt.yticks(np.arange(0, max_v, step))  # np.arange(0, max_v, 0.5) 最大值的数列中,0.5取一个值

    # x轴刻度描述旋转60度
    plt.xticks(rotation=60)

    # 修改坐标轴刻度的颜色
    plt.xticks(color=text_color)
    plt.yticks(color=text_color)

    # 修改网格线的颜色和样式
    plt.grid(color='#999999', linestyle='--', linewidth=0.5)  ##999999

    # 尝试修改方格子的背景颜色(这里是一个示例,实际效果可能需要进一步定制)
    plt.gca().set_facecolor(canvas_color)  # 设置坐标轴背景颜色

    # 添加图表元素
    plt.title(title, color=text_color, fontsize=20)
    # plt.xlabel('X Axis')
    # plt.ylabel('Y Axis')

    # 创建图例并修改位置
    legend = plt.legend(frameon=False, bbox_to_anchor=(0.9, 1.04), ncol=5)  # loc='upper center',

    for legend_color in legend.get_texts():
        legend_color.set_color(text_color)

    plt.tight_layout()
    # 显示图表
    # plt.show()
    plt.savefig(pic_name,) #transparent=True,
    plt.close(fig)

if __name__ == '__main__':
    gradation = [3.6, 3, 2.4]  # ABCD等级

    data_line_color = '#4F81BD'  # 蓝色 画数据图
    A_line_color = '#00B050'  # 绿色 等级A线
    B_line_color = '#FFC000'  # 橙色 等级B线
    C_line_color = '#C00000'  # 红色 等级B线
    data_type='Temp'
    title='Temp图表'
    pic_name='images_01.png'
    y_list=[4.32652, 4.45215, 4.62096, 4.64238, 4.27212, 4.44637, 4.29507, 4.4989, 4.56095, 4.57829, 4.68539, 4.65428, 4.71412,
     4.57183, 4.63558, 4.65309, 4.67502, 4.43583, 4.57693, 4.63949, 4.70545, 4.66159, 4.57489, 4.61365, 4.60124,
     4.63388, 4.62742, 4.65445, 4.6383, 4.63524, 4.66431, 4.05724, 4.5788, 4.69049, 4.72058, 4.59104, 4.56401, 4.55925,
     4.6434, 4.18355, 4.30238, 4.65819, 4.59206, 3.57495, 4.17743, 2.13233, 2.00993, 3.73237, 3.26776, 3.71299, 3.96544,
     4.71344, 4.72126, 4.67077, 4.68896, 4.70443, 3.98397, 4.55092, 4.66941, 4.7505, 4.76852, 4.59869, 4.63201, 4.72891,
     4.58084, 4.70783, 4.69984, 4.70579, 4.69185, 4.74846, 4.75696, 4.708, 4.72381, 4.69406, 4.7386, 4.02715, 4.50893,
     4.49941, 4.54089, 4.60515, 4.78926, 4.79572, 4.78943, 4.60719, 4.55432, 4.37973, 4.69763, 4.71293, 4.44824,
     4.67247, 4.78824, 4.46507, 4.26056, 4.50961, 4.46609, 4.66584, 4.75067, 4.69933, 4.75475, 4.74999, 4.73027,
     4.57472, 4.6128, 4.66193, 4.33077, 4.52355, 3.88367, 4.69729, 4.65122, 4.73571, 4.25155, 3.15148, 3.18055, 3.64346,
     4.64884, 4.67842, 4.72585, 4.69899, 4.70817, 4.63762, 4.67638, 4.02681, 4.16536, 4.50383, 4.37208, 4.48904,
     4.56877, 4.57455, 4.63949, 4.60243, 4.35202, 4.63235, 4.72211, 4.64935, 4.44076, 3.8104, 3.71537, 4.00216, 3.98329,
     4.65513, 4.64306, 4.56673, 4.6077, 4.68182, 4.6043, 4.61025, 4.6723, 4.51318, 4.66142, 4.69049, 4.70545, 4.66414,
     4.68063, 4.61178, 4.73265, 4.66805, 4.65139, 4.60498, 4.60175, 4.36341, 4.03735, 4.50689, 4.58611, 4.75968,
     4.53256, 4.68029, 4.26617, 4.34828, 4.81595, 4.65802, 4.75305, 4.77107, 4.43362, 4.68318, 4.65513, 4.71429,
     4.71191, 4.657, 4.63422, 4.65292, 4.70664, 4.75339, 4.72704, 4.6672, 4.66941, 4.81017, 4.80456, 4.67621, 4.68692,
     4.71803, 4.67043, 4.67995, 4.70358, 4.66397, 4.74863, 4.63643, 4.46541, 4.47221, 4.3986, 4.54769, 4.35321, 4.26226,
     4.44467, 4.66329, 4.71633, 4.68301, 4.75118, 4.71276, 4.6859, 4.73758, 4.71259, 4.68318, 4.74829, 4.67196, 4.63303,
     4.67774, 4.68607, 4.47527, 4.69015, 4.7114, 4.71837, 4.67893, 4.71327, 4.74727, 4.75322, 4.72619, 4.69525, 4.74965,
     4.66601, 4.70069, 4.31139, 4.42342, 4.1062, 3.96867, 4.45657, 4.18202, 4.61671, 4.7182, 4.61671, 4.6706, 4.67519,
     4.70987, 4.4156, 4.66958, 4.74693, 4.69729, 4.776, 4.72024, 4.64204, 4.72024, 4.69712, 4.76036, 4.71242, 4.51913,
     4.50791, 4.6978, 4.35763, 4.56979, 4.36375, 4.66329, 4.75356, 4.79062, 4.75815, 4.60311, 4.64544, 4.60124, 4.40931,
     3.8461, 3.8648]
    x_list=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
     32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
     61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
     90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
     115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
     138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
     161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
     184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
     207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
     230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
     253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269]


    Line_data_list=[
                {
                    'x_list':x_list,
                    'y_list': y_list,
                    'name': data_type,
                    'color': data_line_color
                },
                {
                    'x_list': x_list,
                    'y_list': [gradation[0]] * len(y_list),
                    'name': 'A',
                    'color': A_line_color
                },
                {
                    'x_list': x_list,
                    'y_list': [gradation[1]] * len(y_list),
                    'name': 'B',
                    'color': B_line_color
                },
                {
                    'x_list': x_list,
                    'y_list': [gradation[2]] * len(y_list),
                    'name': 'C',
                    'color': C_line_color
                }
        ]

    draw_line_chart(Line_data_list,title,pic_name)

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

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

相关文章

免费!OpenAI发布最新模型GPT-4o mini,取代GPT3.5,GPT3.5退出历史舞台?

有个小伙伴问我,GPT-4O mini是什么,当时我还一脸懵逼,便做了一波猜测: 我猜测哈,这个可能是ChatGPT4o的前提下,只支持文本功能的版本,速度更快 结果,大错特错。 让我们一起看看Open…

理解高并发

文章目录 1、如何理解高并发2、高并发的关键指标3、高并发系统设计的目标是什么?1_宏观目标2_微观目标1.性能指标2.可用性指标3.可扩展性指标 4、高并发的实践方案有哪些?1_通用的设计方法1.纵向扩展(scale-up)2.横向扩展&#xf…

【隐私计算】Cheetah安全多方计算协议-阿里安全双子座实验室

2PC-NN安全推理与实际应用之间仍存在较大性能差距,因此只适用于小数据集或简单模型。Cheetah仔细设计DNN,基于格的同态加密、VOLE类型的不经意传输和秘密共享,提出了一个2PC-NN推理系统Cheetah,比CCS20的CrypTFlow2开销小的多&…

数据结构—线性表和顺序表

线性表: 线性表是一个由n个具有相同特性的数据元素构成的有限序列。常用到的线性表都有:链表、队列、栈、顺序表.... 顺序表: 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构(顺序表的元素类型是包装类&#x…

[苍穹外卖]-10WebSocket入门与实战

WebSocket WebSocket是基于TCP的一种新的网络协议, 实现了浏览器与服务器的全双工通信, 即一次握手,建立持久连接,双向数据传输 区别 HTTP是短连接, WebSocket是长连接HTTP单向通信, 基于请求响应模型WebSocket支持双向通信 相同 HTTP和WebSocket底层都是TCP连接 应用场景…

Android 通过相机和系统相册获取图片,压缩,结果回调

一、需求背景 在常规的App开发中,很多时候需要用户上传图片来进行一些业务上的实现,例如用户反馈,图片凭证等。 二、实现功能 1.选择弹窗(即选择拍照或者相册) 2.申请权限(相机权限) 3.相机…

油耳用什么掏耳朵比较好?可视挖耳勺推荐平价

掏耳朵是一个轻松又舒服的感觉,很多人就会用棉签和普通耳勺越掏越进,在盲掏的过程中容易弄伤耳膜。所以我们在掏耳时要选好工具。市面上的智能可视挖耳勺,顶端带有摄像头,可以通过清楚的观察到耳道中的情况。但现在市面上关于可视…

【Unity学习心得】如何使用Unity制作“饥荒”风格的俯视角2.5D游戏

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、需要导入的素材二、要实现的步骤 俯视角2D人物移动控制2.5D风格的实现使用协程实现相机绕玩家旋转效果总结 前言 由于要找工作开始重新拾起学习Unity&#…

系统资源智能管理:zTasker软件的监控与优化

在创新的引领下,科技不断迭代升级,为我们应对快节奏生活的挑战提供了强大的工具。它让我们在协调工作与家庭的同时,也能保持内心的宁静与平衡——而自动化工具的出现,正是科技力量在提升工作效率和生活质量方面的体现。zTasker&am…

System.out源码解读——err 和 out 一起用导致的顺序异常Bug

前言 笔者在写一个小 Demo 的过程中&#xff0c;发现了一个奇怪的问题。问题如下&#xff1a; // 当 flagtrue 时打印 a1 &#xff1b;当 flagfalse 时打印 a2。 public static void main(String[] args) {boolean flag false;for (int i 0; i < 10; i) {if (flag) {Sys…

AI 与大模型如何助力金融研发效能最大化?

在金融行业&#xff0c;技术创新与严格合规的需求并行存在&#xff0c;推动着研发团队不断寻求更高效的解决方案。面对日益增长的市场竞争和技术进步&#xff0c;金融机构必须迅速适应变化&#xff0c;同时确保所有创新措施都符合监管要求。这种需求催生了对高效研发流程和先进…

深入掌握:如何进入Docker容器并运行命令

感谢浪浪云支持发布 浪浪云活动链接 &#xff1a;https://langlangy.cn/?i8afa52 文章目录 查看正在运行的容器使用 docker exec 命令进入容器进入容器的交互式 shell在容器中运行命令 使用 docker attach 命令附加到容器检查容器日志退出容器从 docker exec 方式退出从 docke…

趣味SQL | 从围棋收官到秦楚大战的数据库SQL语言实现

目录 0 前言 1 秦孝公大战商鞅 2 收官类型与城池特征 3 收官顺序与攻城策略 4 秦孝公展示SQL神功 5 写在最后 欲知后事如何&#xff0c;想进一步了解SQL这门艺术语言的&#xff0c;可以订阅我的专栏数字化建设通关指南&#xff0c;且听下回分解。专栏 原价99&#xff0c…

MacBook上怎么查找历史复制记录?

你是否经常遇到这样的情况:做内容或方案时,需要用到素材就去找,找到后回来粘贴,然后再去找,再回来粘贴?这个过程是不是很繁琐? 那么找到的素材要不要保存下来呢?每个都存成文件似乎太麻烦了。但如果不单独保存,过两天想再利用又找不到了,怎么办? 在网上看到的一段好文案、…

解锁头条创作新纪元:文字游侠AI工具助你解放双手 ,一键生成爆文!

如今&#xff0c;自媒体创作早已不再是专业人士的专属领地&#xff0c;而是成为了普通人轻创首选的新途径。然而&#xff0c;对于许多想要通过自媒体创业的朋友来说&#xff0c;创作内容的难度和耗时却成为了不可忽视的障碍。 今天&#xff0c;为大家揭秘一款颠覆性的AI写作神…

【附源码】用Python开发一个音乐下载工具,并打包EXE文件,所有音乐都能搜索下载!

现在听个歌&#xff0c;不是要这就是要那&#xff0c;乱七八糟的&#xff0c;下软件都下不赢。 于是决定加班熬夜来做一个&#xff0c;想怎么听就怎么听&#xff0c;大家自己看到就好&#xff0c;悄悄用&#xff0c;别告诉别人哈~ 好了不闲聊&#xff0c;开整&#xff01; 首先…

新书速览|循序渐进Vue.js 3.x前端开发实践

《循序渐进Vue.js 3.x前端开发实践》 本书内容 《循序渐进Vue.js 3.x前端开发实践》由一位拥有丰富前端开发经验的架构师撰写&#xff0c;旨在通过详尽的理论知识讲解和丰富的实践练习&#xff0c;帮助初学者深入掌握Vue.js框架&#xff0c;并能够独立开发商业级别的Web应用程…

【题解】CF1993D

目录 翻译思路总代码 翻译 原题链接 思路 容易发现&#xff0c;无论如何操作&#xff0c;最后剩下的数量是一定的&#xff0c;记剩下的数组中中位数的位置为 m m m&#xff08;从1开始记&#xff09;&#xff0c;注意不能将数组删空。有&#xff1a; 剩余数组的长度 L ( n …

windows@移除资源管理器中的网盘等软件的图标@一键移除方案

文章目录 abstract设置方案移除注册表(不推荐单独使用)设置访问权限GUI设置powershell方案 利用powershell设置相应注册表(一键执行脚本)移除所有用户对指定注册表路径的访问权限移除所有权限但保留管理员&#x1f47a; abstract 国内的云盘等软件比如百度网盘,夸克网盘,wps等…

轻量级模型汇总解读——涉及MobileNet、ShuffleNet、GhostNet、EfficientNet、NasNet、轻量transformer

前言&#xff1a;最近需要将模型移植到瑞芯微rv1106上运行&#xff0c;相比于rv1126 NPU的2.0T算力&#xff0c;它的算力更小&#xff0c;只支持0.5T的算力&#xff0c;而且rv1106目前只支持int8量化&#xff0c;为了保证模型推理在满足精度要求的情况下&#xff0c;保证时间尽…