百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

刷爆全网的动态排序条形图,竟然被DeepSeek一秒生成!

zhezhongyun 2025-05-26 20:16 17 浏览

你肯定见过这样的刷爆全网的各种GDP动态图

以前总感觉这样的图表一般人做不出来,所以只有羡慕的份。而今天兰色教你用deepseek快速制作帅气的动态排序条形图。兰色原创纯干货,同学们如果觉得有用,记得在最下面点赞和转发、收藏。

准备工作:

数据源(直接粘到到表格中再分列)

项目 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020

郑州 326 422 509 583 607 622 719 745 834 870

北京 518 611 700 776 808 903 926 1008 1048 1088

上海 712 773 812 896 931 1011 1048 1062 1117 1174

南京 877 921 1012 1035 1119 1156 1241 1269 1329 1353

天津 192 217 257 276 356 387 451 495 578 607

成都 677 705 731 808 854 937 964 989 1084 1172

洛阳 443 500 544 642 713 760 823 875 897 993

南阳 588 608 683 758 830 895 982 997 1093 1160

西安 772 782 869 897 925 1021 1049 1120 1196 1223

广州 232 248 327 398 419 463 513 574 642 654


Html模板代码,下面要粘贴给Deepseek

const updateFrequency = 2000;
const dimension = 0;
const countryColors = {
  Australia: '#00008b',
  Canada: '#f00',
  China: '#ffde00',
  Cuba: '#002a8f',
  Finland: '#003580',
  France: '#ed2939',
  Germany: '#000',
  Iceland: '#003897',
  India: '#f93',
  Japan: '#bc002d',
  'North Korea': '#024fa2',
  'South Korea': '#000',
  'New Zealand': '#00247d',
  Norway: '#ef2b2d',
  Poland: '#dc143c',
  Russia: '#d52b1e',
  Turkey: '#e30a17',
  'United Kingdom': '#00247d',
  'United States': '#b22234'
};
$.when(
  $.getJSON(CDN_PATH + 'emoji-flags@1.3.0/data.json'),
  $.getJSON(ROOT_PATH + '/data/asset/data/life-expectancy-table.json')
).done(function (res0, res1) {
  const flags = res0[0];
  const data = res1[0];
  const years = [];
  for (let i = 0; i < data.length; ++i) {
    if (years.length === 0 || years[years.length - 1] !== data[i][4]) {
      years.push(data[i][4]);
    }
  }
  function getFlag(countryName) {
    if (!countryName) {
      return '';
    }
    return (
      flags.find(function (item) {
        return item.name === countryName;
      }) || {}
    ).emoji;
  }
  let startIndex = 10;
  let startYear = years[startIndex];
  option = {
    grid: {
      top: 10,
      bottom: 30,
      left: 150,
      right: 80
    },
    xAxis: {
      max: 'dataMax',
      axisLabel: {
        formatter: function (n) {
          return Math.round(n) + '';
        }
      }
    },
    dataset: {
      source: data.slice(1).filter(function (d) {
        return d[4] === startYear;
      })
    },
    yAxis: {
      type: 'category',
      inverse: true,
      max: 10,
      axisLabel: {
        show: true,
        fontSize: 14,
        formatter: function (value) {
          return value + '{flag|' + getFlag(value) + '}';
        },
        rich: {
          flag: {
            fontSize: 25,
            padding: 5
          }
        }
      },
      animationDuration: 300,
      animationDurationUpdate: 300
    },
    series: [
      {
        realtimeSort: true,
        seriesLayoutBy: 'column',
        type: 'bar',
        itemStyle: {
          color: function (param) {
            return countryColors[param.value[3]] || '#5470c6';
          }
        },
        encode: {
          x: dimension,
          y: 3
        },
        label: {
          show: true,
          precision: 1,
          position: 'right',
          valueAnimation: true,
          fontFamily: 'monospace'
        }
      }
    ],
    // Disable init animation.
    animationDuration: 0,
    animationDurationUpdate: updateFrequency,
    animationEasing: 'linear',
    animationEasingUpdate: 'linear',
    graphic: {
      elements: [
        {
          type: 'text',
          right: 160,
          bottom: 60,
          style: {
            text: startYear,
            font: 'bolder 80px monospace',
            fill: 'rgba(100, 100, 100, 0.25)'
          },
          z: 100
        }
      ]
    }
  };
  // console.log(option);
  myChart.setOption(option);
  for (let i = startIndex; i < years.length - 1; ++i) {
    (function (i) {
      setTimeout(function () {
        updateYear(years[i + 1]);
      }, (i - startIndex) * updateFrequency);
    })(i);
  }
  function updateYear(year) {
    let source = data.slice(1).filter(function (d) {
      return d[4] === year;
    });
    option.series[0].data = source;
    option.graphic.elements[0].style.text = year;
    myChart.setOption(option);
  }
});


制作步骤:

打开Deepseek官网,把代码和表格数据复制给它,中间加提示词:

以上是动态条形图html代码,请帮我替换为下面的数据并用html格式输出,另外图表颜色要使用随机色

很快代码就生会成,点击运行HTML,就可能看到动态的图表了。


下载方法:复制代码粘贴到一文本文件中,再把文本文件的后由txt改为html。再双击运行即可。

在PPT中的使用方法:在PPT中插入一图表或图形,插入超链接,通过浏览找到刚改名的html文件。以后播放幻灯片时随时打开动态图播放。

相关推荐

Trump Pushes for 15%-20% Minimum Tariffs on EU, Sticks to Auto Duties: Report

TMTPOST--U.S.PresidentDonaldTrumpistakingatougherstanceduringtradenegotiationswiththe...

Note-15.使用A4988控制步进电机(dvp15mc11t控制步进电机)

如果需要控制一堆步进电机,那么只使用一个Arduino来控制,就会占用大量的处理时间,而无法处理其他事情,除非使用一个独立的专用步进电机驱动器:A4988。A4988只需两个引脚就可以控制双极步进电机...

Negotiated settlement, not sanctions, the right way to end the Ukraine crisis

Negotiatedsettlement,notsanctions,therightwaytoendtheUkrainecrisis:ChinaDailyeditorial...

U.S. Services May be Added to EU&#39;s Retaliatory Target List as More Members Seek Powerful Trade Tool If Talks Fail

TMTPOST--AmericanservicescouldbeaddedtotheEuropeanUnion’sretaliatorytargetlist,highlig...

S7-1200伺服指令运动指令(s71200伺服位置控制实例)

1.MC_Halt指令名称:停止轴运行指令功能:停止所有运动并以组态的减速度停止轴。使用技巧:常用MC_Halt指令来停止通过MC_MoveVelocity指令触发的轴的运行。『注意』部分输入/输出管...

Deepseek太强了!等了10年的Excel模糊下拉,竟然5分钟就搞定了

今天跟大家分享下我们如何通过Deepseek来编写VBA代码,制作模糊搜索的下拉菜单,这个等来十来年的功能,用Deepseek竟然几分钟就搞定了,不得不感叹AI工具的强大,我们以后能干的过AI吗,这真...

7.Unity物理关节(unity物理骨骼)

7.物理关节Unity的物理关节组件将刚体连接到另一个刚体或空间中的固定点。施加使刚体移动的力,关节限制可以限制移动。关节赋予刚体一定的自由度,从而使这些刚体具有不同的运动。Unity提供的物理关...

西门子111报文对应FB284引脚(西门子111报文详解)

西门子FB284是基于111报文的功能块,使用FB284比较方便,直接调用就可以控制V90伺服的定位控制。下面是整理的FB284对应的111报文。便于理解FB284功能块,更方面应用在实际项目中。11...

数据质量动态探查及相关前端实现(数据质量改进实践指南)

需求背景数据探查上线之前,数据验证都是通过写SQL方式进行查询的,从编写SQL,到解析运行出结果,不仅时间长,还会反复消耗计算资源,探查上线后,只需要一次探查,就可以得到整张表的探查报告,但后续...

阿里面试官:你连个排序算法都讲不明白?出门右拐吧

排序算法一表总览其他注意事项:计数排序中,kkk是整数的范围稳定性是指,序列中相同的数是否有可能交换顺序,例如序列中有两个8,顺序为888和8′8^{'}8′,如果在排序完之后,顺序有...

直流电机速度、位置双环控制简明教程

速度、位置的双环控制是我们在电机的控制系统中常用的方法,很实用。下面让我们来看一下内部实现的原理。1.速度闭环控制我们一般在速度闭环控制系统里面,使用增量式PI控制。而在我们的微处理器里面,因为控制器...

纳米机器人的精准定位与导航(纳米机器人怎么控制位置)

纳米机器人的精准定位与导航涉及多学科交叉技术,其“源码”(控制逻辑与算法)需结合硬件特性、环境感知和执行器设计。以下从控制原理、算法逻辑、关键技术实现等方面提供概念性思路(非实际可运行代码),供技术探...

C语言进阶教程:多级指针的应用(c语言一级指针和二级指针)

在C语言中,指针可以指向变量的地址。多级指针(PointerstoPointers或MultilevelPointers)则是指向另一个指针地址的指针。这种概念可以扩展到任意级别(二级指针、...

被 Trac 的文件整理能力圈粉了!这 “香” 气挡不住

前阵子整理电脑文件夹时,我遇到了个麻烦:上千个文档和照片,要是手动一个个重命名、分类,不仅手得点到发麻,估计还得耗上一上午。于是我就琢磨着,能不能找个办法实现一键批量重命名。我先在网上搜了些批量改名软...

Enhancer-轻量化的字节码增强组件包

一、问题描述当我们的业务发展到一定阶段的时候,系统的复杂度往往会非常高,不再是一个简单的单体应用所能够承载的,随之而来的是系统架构的不断升级与演变。一般对于大型的ToC的互联网企业来说,整个系统都是...