Echarts如何在条形图上的特定条形之间添加垂直虚线?

2023-11-30

我正在使用 Echarts 并创建了一个条形图。我正在尝试添加两条垂直虚线来分隔Source3 and Source4和另一条垂直虚线以显示分离SourceSix and SourceSeven。我试过乱搞markLine到一个酒吧并添加一个line作为小节后数据的一部分,但我似乎可以弄清楚这一点。

代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>ECharts</title>
    <!-- including ECharts file -->
    <script src="echarts.js"></script>
</head>
<body>
<!-- prepare a DOM container with width and height -->
<div id="main" style="width: 1600px;height:800px;"></div>
<script type="text/javascript">
    // based on prepared DOM, initialize echarts instance
    var myChart = echarts.init(document.getElementById('main'));

    // specify chart configuration item and data
    var option = {
        title: {
            text: 'Counts by Intel Source'
        },

        legend: {
            data:['Count']

        },
        xAxis: {
            type: 'category',
            data: ['SourceOne','SourceTwo','SourceThree','SourceFour','SourceFive','SourceSix','SourceSeven','SourceEight'],
        axisLabel: {
          fontWeight: 'bold',
          fontSize: 16,
          margin: 1,
            }
        },
        yAxis: {
          type: 'log',
          axisLabel: {
            fontWeight: 'bold',
          }
        },

        labelLine: {
     lineStyle: {
                 color: 'rgba(255, 255, 255, 0.3)'
             }
        },

    series: [
      {
          name: 'SourceOne',
          type: 'bar',
          stack: 'Chart 1',
          color: '#ed2d2e',
          data: [1819931,,,,,,,],
          },
        {
            name: 'SourceTwo',
            type: 'bar',
            stack: 'Chart 1',
            color: '#0bb5b5',
            data: [,1291396,,,,,,]
        },
        {
            name: 'SourceThree',
            type: 'bar',
            stack: 'Chart 1',
            color: '#662c91',
            data: [,,161,,,,,]
        },
        {
        name: 'SourceFour',
        type: 'bar',
        stack: 'Chart 1',
        color: '#0e107b',
        data: [,,,133279,,,,]
    },

    {
        name: 'SourceFive',
        type: 'bar',
        stack: 'Chart 1',
        color: '#a11d20',
        data: [,,,,1275,,,]
    },

    {
        name: 'SourceSix',
        type: 'bar',
        stack: 'Chart 1',
        color: '#f37d22',
         data: [,,,,,119,,]
    },
    {
        name: 'SourceSeven',
        type: 'bar',
        stack: 'Chart 1',
        color: '#008c47',
        data: [,,,,,,25224,]
    },
    {
        name: 'SourceEight',
        type: 'bar',
        stack: 'Chart 1',
        color: '#1859a9',
        data: [,,,,,,,6798]
    },
]
};

    // use configuration item and data specified to show chart
    myChart.setOption(option);
</script>

期望的输出:

enter image description here


我已经成功地使用以下选项实现了与您正在寻找的效果类似的效果:我已将您的 x 轴转换为“值”x 轴,以便我们可以将标记线放在中间的特定位置你的系列。这样做时,您需要为每个数据点分配一个 x 轴索引,但它还允许您向 sourceThree 和 sourceSix 添加一个附加点,这将允许您在两者之间画一条线作为类型:'平均'标记线:

option = {
   title : {
        text: 'Chart Title',
        subtext: 'subtitle'
    },
    tooltip : {
        trigger: 'axis',
        axisPointer:{
            show: true,
            type : 'cross',
            lineStyle: {
                type : 'dashed',
                width : 1
            }
        },
        formatter : function (params) {
            return params.seriesName + ' : [ '
                   + params.value[0] + ', ' 
                   + params.value[1] + ' ]';
        }
    },
    xAxis : [
        {
            type : 'value'
        }
    ],
    yAxis : [
        {
            type : 'log',
            axisLine: {
                lineStyle: {
                    color: '#dc143c'
                }
            }
        }
    ],
    series : [
        {
            name:' SourceOne',
            type:'bar',
            data:[
               [1, 1819931]
            ]
        },
      {
            name:' SourceTwo',
            type:'bar',
            data:[
               [2, 1291396]
            ]
        },
            {
            name:' SourceThree',
            type:'bar',
            data:[
               [3, 161], [4, 0]
            ],
            markLine : {
              silent: true, // ignore mouse events
              data : [
                // Horizontal Axis (requires valueIndex = 0)
                {type : 'average', name: 'Marker Line', valueIndex: 0, itemStyle:{normal:{color:'#1e90ff'}}},
              ]
            }
        },
              {
            name:' SourceFour',
            type:'bar',
            data:[
               [4, 133279]
            ]
        },
      {
            name:' SourceFive',
            type:'bar',
            data:[
               [5, 1275]
            ]
        },
            {
            name:' SourceSix',
            type:'bar',
            data:[
               [6, 119], [7, 0] // this extra data point is the hack to get your marker line in between your series
            ],
            markLine : {
              silent: true, // ignore mouse events
              label: {show: false},
              data : [
                // Horizontal Axis (requires valueIndex = 0)
                {type: 'average', name: 'Line Marker', valueIndex: 0},
              ]
            }
        },
      {
            name:' SourceSeven',
            type:'bar',
            data:[
               [7, 25224]
            ]
        },
      {
            name:' SourceEight',
            type:'bar',
            data:[
               [8, 6798]
            ]
        }
    ]
};

这应该会产生以下图表,您可以通过将该选项粘贴到此处来亲自尝试:https://echarts.baidu.com/echarts2/doc/example/bar13.html#

Chart fiddle

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Echarts如何在条形图上的特定条形之间添加垂直虚线? 的相关文章

  • 如何通过aws-sdk(javascript或node)获取s3存储桶大小

    我尝试使用 javascript nodejs aws sdk 查找 获取 s3 存储桶信息 但没有找到这样的 api 如何通过 aws sdk javascript 或 node api 获取 s3 存储桶大小 信息 每天一次向 Clou
  • JavaScript 中的“new”关键字是什么?

    The newJavaScript 中的关键字第一次遇到时可能会很混乱 因为人们倾向于认为 JavaScript 不是面向对象的编程语言 它是什么 它解决什么问题 什么时候合适 什么时候不合适 它做了 5 件事 它创建一个新对象 这个对象的
  • Webpack 缺少 CommonsChunk 和 extract-text-webpack-plugin 模块

    我正在跟进Maxime Fabre 的 Webpack 教程 https blog madewithlove be post webpack your bags 我正在尝试获得一个非常简单的 webpack 包 其中包含 1 个入口点和 2
  • jQuery UI sortable 和 contenteditable=true 不能一起工作

    我正在创建一个列表并希望使其项目可排序和可编辑 所以我这样做 ul li span A span li li span B span li li span C span li ul ul list sortable http jsfiddl
  • 使用 requirejs 加载外部脚本而无需访问配置

    我正在尝试在我正在编写的插件中加载数据表 javascript 库 问题是 当我加载外部资源时 我会遇到冲突 因为当我调用 require 时 数据表与某些内容发生冲突 这是错
  • ngx-DataTable 对列进行排序无法正常工作 Angular 4

    虽然我对角度非常陌生 但我在使用 ngx DataTable 时遇到了一些困难 我使用简单的 ngx DataTable 进行简单的操作 问题出在列上 尽管我已将 attr 声明为 sortable true 但排序不起作用 这是代码 表定
  • 通过 jquery/javascript 在警报或确认对话框中单击“确定”?

    我正在考虑在backbone js 和jquery 中编写一些UI 测试 它们可能不是最好的方法 但这是我正在考虑的事情 通过纯代码自动化测试而无需记录和回放 使用这种方法唯一让我摸不着头脑的是 在某些 用例流程 执行的 中 会出现确认 警
  • 光滑的旋转木马不工作

    我一直在尝试简单地实现 Slick Carousel 的工作 我已按照 Git 页面上的说明进行操作 https github com kenwheeler slick https github com kenwheeler slick 这
  • 在 IE10 中禁用捏合放大

    在 IE10 触摸模式下 我希望仅使页面的特定部分可缩放 其余的不应该 我找到了这个 http msdn microsoft com en US library ie hh772044 aspx http msdn microsoft co
  • 单击输入字段会触发窗口调整大小

    我有一个带有徽标 菜单和搜索的标题 当我在桌面上时 我会按该顺序显示所有元素 但如果我的窗口宽度小于 980 像素 菜单会隐藏 有一个切换按钮 并且徽标会与nav并附在徽标之后 如果宽度更大 则徽标将再次分离并附加到 DOM 中的旧位置 w
  • 更新 Google 地图流量层而无需重新加载页面

    我的页面中嵌入了 Google 地图 我使用 initMap js 函数来初始化地图 function initMap var map new google maps Map document getElementById t map zo
  • 在 php、ajax 或 javascript 中加载进度?

    任何人都知道如何在系统仍在服务器端获取数据的同时在客户端显示加载进度以及完成的百分比 例如 当我在客户端按下 确定 按钮时 它会调用服务器端从数据库收集数据 整个过程可能需要2到3分钟 如何在客户端显示加载进度 大约加载完成了多少 我怎样才
  • 从网站存储数据的最简单方法(在服务器端)

    我有一个非常简单的网站 实际上是单页 有一个输入字段和一个按钮 我需要将用户提交的数据存储在服务器端的某个位置 完美的方法可能是简单的文本文件 并在每次单击按钮后附加新行 日志文件也可以 据我了解 JavaScript 本身是不可能的 我在
  • 哪些网络浏览器不支持 Javascript?以及如何识别客户端使用的是哪个浏览器?

    是否有不支持 javascript 的网络浏览器 以及如何确定客户端是否正在使用这些浏览器之一 或者客户端禁用了javascript 是否有不支持 javascript 的网络浏览器 当然 Lynx http en wikipedia or
  • 删除 Laravel Mix 中的临时文件

    我想在 laravel mix 构建期间或之后删除临时构建文件 这是我目前拥有的一些代码 但是del不工作 const mix require laravel mix const del require del compile sass i
  • 无法在渲染器进程中使用 Node.js API

    无法在 Electron 中使用任何与 Electron 或节点相关的操作 未定义获取错误过程 我检查了他们指导添加节点支持的各个地方 但这已经完成了 所以卡在这里 我的主要应用程序代码是 const electron require el
  • 从相机视图中拖动锁定在一定距离/半径处的对象

    我在场景中心有一个相机 距离相机 z 400 处有 1 个球体 其父级位于中心 我想从视图中向上 向下 向左 向右拖动球体 但同时不改变它相对于中心的 z 位置 我最终使用了另一个球体并使其不可见 添加side THREE DoubleSi
  • PhantomJS 网页内存消耗?

    是否有一种编程方式 因为我想在运行时自动执行 方式来查看网页在通过 PhantomJs 运行时使用了多少内存 我也在使用 casperjs 如果这有帮助的话 我已经搜索了很多但没有找到任何方法 PhantomJs 使用 QtWebKit 因
  • 在 JSP 或 Javascript 中清除浏览器缓存中的图像

    我正在为一所大学开发JSP Web 应用程序 用户页面中显示人员图片 用户注销后如何从网络浏览器缓存中清除这张图片 使用 JSP 或 JavaScript 那是不可能的 最好的选择是完全禁用相关资源的缓存 创建一个filter https
  • 使用 JavaScript onclick 添加表格行

    我正在尝试使用 javascript 添加下面找到的完全相同的元素 我已经尝试了这里找到的所有解决方案 我什至尝试用php echo但没有运气 无需更改任何输入名称或类似内容 只需单击该按钮即可向表中添加另一行 仅此而已 这是该元素 tr

随机推荐