超酷炫,百行Python代码制作动态曲线图

百行代码手搓Python Agent:轻量级工具调用实现 Agent 是一种基于大语言模型的自动化决策系统,其核心原理在于将用户意图解析为结构化工具调用指令,并安全执行、反馈结果。技术价值体现在轻量化、高可控性与强可调试性,尤其适合 Python 初学者快速验证业务逻辑、产品侧做流程可行性探针,或边缘设备部署最小可行闭环。相比 LangChain 等框架,原生实现规避了黑盒依赖与 token 膨胀问题,聚焦 prompt 编排、JSON Schema 参数校验、动态函数调度与执行熔断四大关键环节。本文以 83 行主干代码为例,详解如何用纯 Python 构建具备思 阅读详情

公众号“算法美食屋”后台回复关键字:动态图,可添加作者微信获取完整代码和人口数据集。

先上图

再上视频:

最后上代码:

import numpy as np 
import pandas as pd 
import matplotlib as mpl 
from matplotlib import pyplot as plt 
import matplotlib.animation as  animation 

cmap = [
'#2E91E5',
'#1CA71C',
'#DA16FF',
'#B68100',
'#EB663B',
'#00A08B',
'#FC0080',
'#6C7C32',
'#862A16',
'#620042',
'#DA60CA',
'#0D2A63']*100

mpl.rcParams['animation.writer'] = 'html'

def line_chart_race(df,filename=None,title = "",figsize = (6.5,3.5),dpi = 144,duration = 0.5):
    
    assert "date" in df.columns, "df should with a column date!"
    assert filename is None or filename.endswith(".html"), "filename should like *.html!"

    fig,ax = plt.subplots(figsize=figsize,dpi=dpi)

    ax.set_facecolor("0.9")
   
    # 调整spines
    ax.spines["top"].set_visible(False)
    ax.spines["right"].set_visible(False)
    ax.spines["left"].set_visible(False)
    ax.spines["bottom"].set_visible(False)

    def plot_frame(date):
        dfdata = df.loc[df["date"]<=date,:]
        dfdata.index = dfdata["date"]
        idx = range(len(dfdata))

        ax.clear() 
        cols = [name for name in dfdata.columns if name!="date"]
        for i,col in enumerate(cols):

            ax.plot(idx,dfdata[col],color = cmap[i],lw = 4)
            px,py = idx[-1],dfdata[col].iloc[-1]
            ax.scatter(px,py,color = cmap[i],edgecolor = "black",
                      s = 200,lw = 2.5,zorder = 4)

            ax.annotate(col+":\n"+str(py),xy = (px,py),  xycoords = "data",
                       xytext = (10,2),fontweight = "bold",color = cmap[i], textcoords = "offset points")

        # 调整绘图范围
        xlim = (0,len(df))
        ax.set_xlim(xmin = xlim[0]-(xlim[1]-xlim[0])/10,xmax = xlim[1]+(xlim[1]-xlim[0])/10)
        values = df[[x for x in df.columns if x!="date"]].values
        ylim = (values.min(),values.max())
        ax.set_ylim(ymin = ylim[0]-(ylim[1]-ylim[0])/10,ymax = ylim[1]+(ylim[1]-ylim[0])/10)


        # 设置xticks
        n = len(df)
        ticks_num = 12
        delta = int(np.ceil(n/ticks_num)) 
        ticks = list(range(0,n,delta)) 
        dates =  df["date"].tolist()
        ticklabels =[dates[i] for i in ticks]
        ax.set_xticks(ticks)
        ax.set_xticklabels(ticklabels)
        
        ax.tick_params(bottom = False,left = False,labelsize = 8,direction = "in",length = 2)

        # 添加辅助元素
        s = dfdata["date"].iloc[-1]
        ax.text(0.5, 0.5, s, va="center", ha="center",alpha=0.3, size = 50,transform = ax.transAxes)
        ax.grid(axis = "x",color="white",lw=1,ls = "-")
        ax.set_title(title,color = "black",fontsize = 12)
        
    line_animation = animation.FuncAnimation(fig,plot_frame,frames = df["date"],interval = int(duration*1000))
    if filename is None:
        try:
            from IPython.display import HTML
            return HTML(line_animation.to_jshtml())
        except ImportError:
            pass
    else:
        line_animation.save(filename)
        return filename
    
dfdata = pd.read_csv('Pop_data.csv')
dfdata = dfdata.rename({"year":"date"},axis = 1)
for col in dfdata.columns:
    if col!="date":
        dfdata.loc[:,col] = np.round(dfdata.loc[:,col]/1e8,4)
dfdata.set_index(dfdata["date"])

html_file = "population_race.html"
html = line_chart_race(dfdata,html_file,title="Population Line Race")
html

主要思路是设计plot_frame绘图函数绘制逐桢图片,然后用matplotlib.animation构建动画,如果有需要,还可以导出成gif和mp4。

收工。????

公众号“算法美食屋”后台回复关键字:动态图,可添加作者微信获取完整代码和人口数据集。

百行代码手搓Agent:从零实现工具调用核心机制 Agent(智能体)是大模型落地的关键范式,其本质是基于LLM的决策-工具调度-结果整合闭环。理解其原理需穿透LangChain等框架封装,直击Function Calling协议、Prompt工程约束、JSON Schema生成、安全工具执行与错误分层处理等底层机制。本文以OpenAI原生API和requests为技术栈,聚焦最小可行Agent的三大支柱——感知输入、判断是否调用工具、执行并反馈结果,通过98行可运行代码,详解tool_call_id设计、arguments安全解析、沙箱化eval、消息状 阅读详情

相关推荐

海思MPP平台千兆以太网驱动集成与测试指南

千兆以太网(GE)是嵌入式视觉系统中音视频流传输与边缘控制的核心物理接口,其底层驱动需兼顾DMA高效调度、中断实时响应与PHY链路稳定性。在Linux嵌入式环境中,GE驱动通常基于net_device框架实现,并深度耦合于SoC专用媒体处理平台(如海思MPP),通过硬件抽象层(HAL)屏蔽寄存器操作,提供零拷贝、RGMII时序适配、描述符环管理等关键能力。技术价值体现在降低CPU负载、保障1080p@30fps实时推流、支持ONVIF/RTSP协议交互及固件远程升级。典型应用场景包括网络摄像机(IPC)、A

weixin_42599908的博客 90

【python 数字孪生】之绘制动态曲线图

数字孪生的前提是实现动态可视化,本文章教会你用python实现动态可视化绘图

weixin_47510917的博客 1698

别再只会按按钮了!用NanoStat开源项目学ESP32硬件设计:BOOT与自动下载电路的避坑指南

本文通过NanoStat开源项目深入解析ESP32硬件设计中BOOT与自动下载电路的关键技术。从启动机制、电路设计陷阱到三极管选型,提供了一套完整的避坑指南和优化方案,帮助开发者提升设计可靠性和烧录效率。特别适合中级开发者学习ESP32硬件设计的精髓。

weixin_30296405的博客 440

Python可视化之曲线动态图

【代码】Python可视化之曲线动态图。

2302_79903352的博客 977

对E-R模型向关系模式转换的认识

一:基本E-R图的转换 1     属性处理 派生属性:直接忽略。 复合属性:展平技术。 多值属性:单独建立一个关系表,关系名就是多值属性名,如果是实体集的多值属性,关系的属性就是实体集的码加上多值属性,如果是联系集的多值属性,关系的属性就是各个实体集的码加上多值属性,关系的码要具体情况具体分析。 2     基本E-R图转换为关系模式 强实体集:一个关系,关系名就是强实体集名,关系属

优快云_LYY的专栏 2734

【随机过程】 3 - 随机过程的频域分析1 - 功率谱

随机过程的频域分析 文章目录随机过程的频域分析1. 什么是谱2. 确定信号的频谱2.1 周期信号的频谱2.2 非周期信号的频谱3. 随机信号的谱3.1 随机信号做傅里叶分析的困难3.2 功率谱密度的物理和数学表示形式3.2.1 功率谱密度的物理表示3.2.2 功率谱密度的数学表示3.3 功率谱密度的解读3.3.1 量纲分析3.3.2 谱3.3.3 密度3.3.4 wiener和khinchin3.4 功率谱密度的性质3.4.1 非线性3.4.2 偶函数3.5 wiener-khinchin关系的应用3.6

qq_41741344的博客 3133

利用python绘制动态柱形图与动态折线图

本期为大家带来一个基于python的数据可视化教学,绘制动态柱形图与动态折线图。

qq_45856698的博客 2966

VBA中如何使用Edge内核Browser?

在微软宣布停止对IE的支持后,许多使用VBA中Web Browser的用户遇到了困境,因为Web Browser使用的IE内核。然而微软并没有给出支持Edge的新版Web Browser,网上许多第三方的库也不够完善。经过调研,libEdge可以较好的和VBA集成,实现在Excel中打开Browser,甚至能够通过执行js代码,获取web页面的信息。项目需要WebView2Loader.dll和LibEdge.dll两个库,区分x86和x64版本。

金木AI 2400

用Python绘制动态变化的曲线

无论从什么角度来说,圆锥曲线都非常适合动态演示,尤其是其中优美的几何关系,更能在动态变化中得到淋漓尽致的表现。

微小冷的学习笔记 1万+

干货满满!AI应用架构师分享AI驱动虚拟展示干货

虚拟展示(Virtual Presentation):用数字技术将物理对象/场景转化为可交互的虚拟内容(比如3D文物、虚拟试衣间);AI驱动(AI-Powered):通过AI技术实现实时交互、智能决策、个性化生成,让虚拟内容“活”起来;AI驱动虚拟展示:以用户体验为核心,将“3D渲染+AI理解+实时数据”融合,形成“感知-决策-反馈”的闭环系统。前端交互层是用户直接体验到的部分,再厉害的AI和渲染,只要前端交互烂,用户都会跑。我见过很多团队为了“炫技”做了复杂的AI功能,结果用户不会用。

AI大模型应用之禅 539

大厂面试:字节跳动大数据面试题及参考答案(10万字长文及多张原理图持续更新)

在 Spark 中,宽窄依赖是用来描述 RDD(弹性分布式数据集)之间的依赖关系的概念。窄依赖是指父 RDD 的每个分区最多被一个子 RDD 的分区使用,即子 RDD 的分区可以通过确定的规则从父 RDD 的分区计算得到,并且不需要跨节点进行数据传输。窄依赖通常可以在一个节点上进行计算,不需要进行数据的 shuffle 操作,因此性能较高。宽依赖是指父 RDD 的一个分区可能被多个子 RDD 的分区使用,即子 RDD 的分区需要通过跨节点的数据 shuffle 操作从父 RDD 的多个分区获取数据。

大模型大数据攻城狮的专栏 1652

总结-Python绘制曲线图、直方图、GIF动态图

直方图 import matplotlib.pyplot as plt import numpy as np y2 = [2.55,3,2] Gap2 = [round((x-min(y2))/min(y2),4)*100.0 for x in y2] y5 = [4.8,5.5,5.8] Gap5 = [round((x-min(y5))/min(y5),4)*100.0 for x in y5] y10 = [9,8.5,7.9] Gap10 = [round((x-min(y10))/min(y10

CS_W98的博客 1391

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

超动感,百行Python代码制作动态气泡图

先上图片:再上视频:最后上代码:importnumpyasnp importpandasaspd frommatplotlibimportpyplotasplt...

Python_Ai_Road的博客 2533

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

超实用,百行Python代码制作动态树地图

今日表情????树地图(tree map)是一种适用于显示大量分层结构的数据,它是饼状图的一种高维度替代者,可以用面积直观显示各个部分的占比。先上图片:再上视频:最后上代码:import...

Python_Ai_Road的博客 928

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

超简单,百行Python代码制作动态条形图跳舞

打码不易,不想被白嫖,有需要完整代码和GDP数据集的同学,可以对本文点赞,在看,和分享后在公众号“算法美食屋”后台回复关键字:动态图,添加作者微信获取。感谢支持。????先上图片:再上视频...

Python_Ai_Road的博客 920

信贷风控实战:如何用百行征信数据优化贷前策略(附Python代码示例)

本文详细介绍了如何利用百行征信数据优化信贷风控策略,从数据接入、特征工程到策略设计的全流程实战指南。通过Python代码示例展示了百行征信数据的解析、特征构建及风控规则应用,帮助风控从业者提升贷前决策精准度,有效降低违约风险。

silver的专栏 629

百行Python代码开发出游戏,原来Python可以这么强大!

今天给大家介绍一个小项目,只用一百行代码就可以开发出的游戏下载对应python版本的pygame 运行以下命令创建Pygame窗口及响应用户输入新建一个文件夹alien_invasion,并在文件夹中新建alien_invasion.py文件,输入如下代码。为了在写游戏的过程中能便捷地创建一些新功能,下面额外编写一个settings模块,其中包含一个Settings类,用于将所有设置存储在一个地方。这样在以后项目增大时修改游戏的外观就更加容易。

z099164的博客 1276

python双人格斗游戏代码_百行 HTML5 代码实现四种双人对弈游戏

百行 HTML5 代码实现四种双人对弈游戏于 丙超2012 年 6 月 28 日发布目标要做一个完整的双人对弈游戏,至少要做如下事情,第一步:绘制棋盘。不同的棋类游戏棋盘不同,这一点需要进行动态处理;第二步:绘制棋子。需要说明的是,围棋,五子棋等这些棋子都是圆的啊,请不要为了图片苦恼,在 HTML5 时代,我们用代码就可以实现立体圆形棋子;第三步:判断落子事件。当然是要定位手指的点击位置,这四种棋...

weixin_29789925的博客 3409

原来Python可以这么强大,只需要百行Python代码就能开发出游戏

今天给大家介绍一个小项目,只用一百行代码就可以开发出的游戏 安装pygame 下载对应python版本的pygame 运行以下命令 创建Pygame窗口及响应用户输入 新建一个文件夹alien_invasion,并在文件夹中新建alien_invasion.py文件,输入如下代码。 运行上述代码,我们可以得到一个灰色界面的窗口: 创建设置类 为了在写游戏的过程中能便捷地创建一些新功能,下面额外编写一个settings模块,其中包含一个Settings类,用于将所有设置存储在一个地方。这样在以后项目.

m0_59162248的博客 904

python百行代码自制电脑端网速悬浮窗

看到某60的网速悬浮球有点心动,但是又不想装这个流氓软件,就自己用python加PyQt5自制了一个,实测不错,关键不占用电脑一点资源,已将软件打包,可自行下载使用。

悟叭鸽 2万+

百行Python代码开发出游戏,原来Python可以这么强大

安装pygame 下载对应python版本的pygame 运行以下命令 创建Pygame窗口及响应用户输入 新建一个文件夹alien_invasion,并在文件夹中新建alien_invasion.py文件,输入如下代码。 运行上述代码,我们可以得到一个灰色界面的窗口: 创建设置类 为了在写游戏的过程中能便捷地创建一些新功能,下面额外编写一个settings模块,其中包含一个Settings类,用于将所有设置存储在一个地方。这样在以后项目增大时修改游戏的外观就更加容易。 我们首先...

IT教育任姐姐的博客 246

百行代码轻松实现C#中的Eval函数

使用过Javascript中的Eval函数的兄弟肯定对这个函数情有独钟,该函数能动态的执行我们传递进去的表达式。使用Eval函数咱们能轻松的制作可编程的程序,那C#是否也有这样的函数呢?答案是肯定的,不过C#并没有实现现成的方法供我们使用。但是这并不能阻止咱们这帮爱偷懒的程序员们。    现在我们就在C#中实现一个Eval函数吧,具体操作如下:图1图2图3图4 程序代码using System;

GhostHouse 8135

用python做好看的动态图像,怎样用python绘制动图

大家好,给大家分享一下用python做好看的动态图像,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!有朋友问道说“是不是可以将这些动态的可视化图表保存成gif图”,小编立马就回复了说后面会写一篇相关的文章来介绍如何进行保存gif格式的文件。那么我们就开始进入主题,来谈一下Python当中的gif模块。

wenangou6 370

别再寻找了,用 Python 绘制动态可视化图表这篇就够了

有朋友问道说“是不是可以将这些动态的可视化图表保存成gif图”,小编立马就回复了说后面会写一篇相关的文章来介绍如何进行保存gif格式的文件。那么我们就开始进入主题,来谈一下Python当中的gif模块。 【注】拓展视野,文末有技术交流群 推荐文章 有人把吴恩达老师的机器学习和深度学习做成了中文版 其实特简单,Python 这款可视化大屏代码不足百行 上瘾了,最近又给公司撸了一个可视化大屏(附源码) 如此优雅,4款 Python 自动数据分析神器真香啊 梳理半月有余,精心准备了17张知识思

Python数据挖掘 1455
上一篇: 我的产品观
下一篇: Matplotlib支持中文显示的两种方法
算法美食屋
博客等级 码龄9年 2万+粉丝 154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值