如何在 morris.js 条形图上放置文本

2023-12-26

我有一个 morris.js 条形图。我想放置count在此图的顶部。我调查了morris.js 酒吧文档 http://www.oesmith.co.uk/morris.js/bars.html,找不到任何。

悬停时应该显示value但在栏顶部它应该显示count。有没有办法做到这一点?像给定的图像一样

这是我的代码

Morris.Bar ({
  element: 'bar-example',
  data: [
    {mapname: 's1', value: 10, count: 3},
    {mapname: 's2', value: 4, count: 4},
    {mapname: 's3', value: 12, count: 13}
  ],
  xkey: 'mapname',
  ykeys: ['value'],
  labels: ['No. of days'],
  barRatio: 0.4,
  xLabelAngle: 35,
  hideHover: 'auto',
  barColors: function (row, series, type) {
    console.log("--> "+row.label, series, type);
    if(row.label == "s1") return "#AD1D28";
    else if(row.label == "s2") return "#DEBB27";
    else if(row.label == "s3") return "#fec04c";
  }
});

这是一个链接 http://jsbin.com/hahikeki/2/edit你可以在哪里测试它。


我刚刚在寻找相同的解决方案时发现了这个问题。这是在 javascript/jquery 中完成的。

我可以与您分享我正在使用的代码,这些代码是我通过尝试、错误和研究发现的。

function parseSVG(s) {
        var div= document.createElementNS('http://www.w3.org/1999/xhtml', 'div');
        div.innerHTML= '<svg xmlns="http://www.w3.org/2000/svg">'+s+'</svg>';
        var frag= document.createDocumentFragment();
        while (div.firstChild.firstChild)
            frag.appendChild(div.firstChild.firstChild);
        return frag;
    }

var theData = [
    {mapname: 's1', value: 10, count: 3},
    {mapname: 's2', value: 4, count: 4},
    {mapname: 's3', value: 12, count: 13}
  ]

Morris.Bar ({
element: 'bar-example',
data: theData,
  xkey: 'mapname',
  ykeys: ['value'],
  labels: ['No. of days'],
  barRatio: 0.4,
  xLabelAngle: 35,
  hideHover: 'auto',
  barColors: function (row, series, type) {
    console.log("--> "+row.label, series, type);
    if(row.label == "s1") return "#AD1D28";
    else if(row.label == "s2") return "#DEBB27";
    else if(row.label == "s3") return "#fec04c";
  }
});

var items = $("#bar-example").find( "svg" ).find("rect");
$.each(items,function(index,v){
    var value = theData[index].count;
    var newY = parseFloat( $(this).attr('y') - 20 );
    var halfWidth = parseFloat( $(this).attr('width') / 2 );
    var newX = parseFloat( $(this).attr('x') ) +  halfWidth;
    var output = '<text style="text-anchor: middle; font: 12px sans-serif;" x="'+newX+'" y="'+newY+'" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" font-size="12px" font-family="sans-serif" font-weight="normal" transform="matrix(1,0,0,1,0,6.875)"><tspan dy="3.75">'+value+'</tspan></text>';
    $("#bar-example").find( "svg" ).append(parseSVG(output));
});

输出看起来像这样。

但你可以尝试的是改变这里的值

var newY = parseFloat( $(this).attr('y') - 20 );

类似的东西

var halfHeight = parseFloat( $(this).attr('height') / 2 );
var newY = parseFloat( $(this).attr('y') - halfHeight );

此更改未经测试,但将作为一个很好的起点。

问候 :)

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

如何在 morris.js 条形图上放置文本 的相关文章

  • 使用 jQuery Select2 清除下拉菜单

    我正在尝试使用奇妙的方式以编程方式清除下拉菜单Select2 http ivaynberg github com select2 图书馆 使用 Select2 远程 ajax 调用动态填充下拉列表query option HTML
  • 如何让Gmail像加载进度条一样

    我想在页面的中心和顶部创建一个像 Gmail 一样的加载进度条 并适用于所有浏览器 这是基本代码
  • 设置双指缩放时精确的滚动位置

    我正在创建一个地图应用程序 它将标记图像放置在画布上并滚动到它 我正在使用浏览器的捏缩放和滚动来放大 缩小地图 然而 我注意到有一些奇怪的行为 我想知道如何解决它 这有点难以解释 但我们开始吧 假设您处于网页的标准缩放级别 无法进一步缩小
  • jQuery输入文件点击方法和IE上拒绝访问

    我尝试仅使用一个按钮作为输入文件 它在 Firefox Chrome Safari 中工作正常 但在 IE 中不行 提交表单时我总是收到 访问被拒绝 的消息 代码 input file click 有真正的解决方法吗 我在谷歌上浪费了大约2
  • 检测 Google 验证码的挑战窗口何时关闭

    我正在使用谷歌隐形验证码 有没有办法检测挑战窗口何时关闭 我所说的挑战窗口是指您必须选择一些图像进行验证的窗口 目前 我在按钮上放置了一个旋转器 一旦单击按钮 就会呈现验证码挑战 无法向用户提示另一个质询窗口 我以编程方式调用渲染函数 gr
  • JS 保留以零结尾的小数[重复]

    这个问题在这里已经有答案了 在JavaScript中 是否可以 锁定 十进制数 以保留以零结尾的 浮点数 例如 我有 2 个不同的数字 如下所示 伪代码 let a 1 0 let b 1 00 a b true should be fal
  • 如何禁用 body 元素的滚动?

    如何禁用正文滚动 body css overflow hidden 仅隐藏滚动条 但不会禁用滚动 我想禁用正文的滚动 但我想保持其他分区的滚动完好无损 试试这个 CSS 不需要 jQuery 评论后更新 尝试指定高度body too
  • JavaScript 将键添加到数组中的每个值

    我下面有这个数组 它由一个简单的数组组成 我想要完成的是放一把钥匙id在每个数组值前面以实现类似的效果 id a id b id c id d 有没有一种简单的方法可以做到这一点 任何帮助将不胜感激 谢谢 var test a b c d
  • 使用 JQuery 禁用和启用所有超链接

    我有以下禁用所有超链接的内容 但在事件发生后我想再次启用它们 我该如何执行此操作 a click function return false 我认为这不仅仅是将其设置为 true 那么简单 谢谢大家 不要以这种方式绑定 点击 处理程序 而是
  • 当我多次调用 requestAnimationFrame 时会发生什么

    我的意思是一次调用多个具有相同功能的 requestAnimationFrame function Draw DoSomething function AFunc prepare something requestAnimationFram
  • 模板中带有 ng-if 的 angularjs 指令

    我正在构建一个在模板内使用 ng if 的指令 奇怪的是 提供给链接函数的元素没有扩展ng if代码 它只是ng if的注释行 经过一番尝试 我发现通过将链接代码包装在 timeout 中似乎可以使其正常工作 但我想知道这是否不是正确的处理
  • webpack中动态加载外部模块失败

    我正在尝试建立以下架构 一个核心 React 应用程序 它具有一些基本功能 并且能够在运行时加载其他 React 组件 这些额外的 React 组件可以按需加载 并且它们在构建核心应用程序时不可用 因此它们不能包含在核心应用程序的捆绑包中
  • 如何使用新的analytics.js跟踪多个帐户?

    我需要使用 Google 的新的analytics js 跟踪一个页面上两个帐户的综合浏览量 有大量教程和示例如何使用较旧的 ga js 进行操作 但我发现的只是这个分析文档页面 https developers google com an
  • 类中可以有生成器 getter 吗?

    我的意思是吸气剂是发电机 我相信这一切都是 ES6 也许像这样 class a get count let i 10 while i yield i let b new a for const i of b count console lo
  • PDF 在 Safari 中隐藏 Jquery Modal

    这是与我有关的事情this https stackoverflow com questions 24052681 pdf hide jquery modal in ie问题 在 IE 中 我在对话框中使用 iframe 解决了问题 所以它工
  • 为什么 Node.js 应用程序只能从 127.0.0.1/localhost 访问?

    我本来打算教我的朋友介绍 Node 但是后来 我想知道为什么这个代码来自nodejs org var http require http http createServer function req res res writeHead 20
  • d3.event.translate 在触摸设备的缩放上包含 NaN

    我使用 d3 为我的 svg 编写了一个自定义缩放函数 如下所示 Zoom behavior function myzoom xpos d3 event translate 0 ypos d3 event translate 1 vis a
  • ng-include 和 ng-view 不同时加载

    下面是我的应用程序的结构 很简单 页眉和页脚是非常小的文件 而主页上的 ng view 要大得多 当我进入该页面时 我注意到了这一点 首先加载两个 ng include 然后 ng view 出现 页脚被推到底部 页脚闪烁大约 0 1 秒
  • 如何映射轮播的子项数组?

    我正在尝试将 Carousel 组件包装在映射对象数组周围作为组件的子级 目前我只能让映射创建映射对象的 1 个子对象 轮播需要像这样
  • 如何在运行脚本之前提交活动单元格中所做的更改? (Google 表格/Google Apps 脚本)

    我正在使用 Google Apps 脚本在 Google 表格中创建提交表单 该表单位于一页上 提交内容被移至第二个隐藏页面 当用户填写表单后 他们按下提交页面上的按钮以激活脚本 我遇到的问题是 当用户填写最后一个单元格然后单击按钮时 输入

随机推荐

  • 如何判断当前线程是否是 UI 线程?

    我正在开发 UWP 的用户控件 它会在某些调用时更新其一些视觉效果 但是 由于核心 NET 库已发生变化并且线程类已被严重削减 我不知道如何从用户控件中的方法识别调用线程是否是 UI 线程 因此它知道是否使用调度程序来更改依赖属性 有人知道
  • 如何从同一 Swift 项目中的任何文件访问自定义函数?

    如果自定义函数的后缀运算符是在文件范围内声明的 如我的上一篇文章 https stackoverflow com questions 40932230 member operator must have at least one argum
  • MySQL Django 模型中的布尔字段?

    在姜戈 MySQL 中的布尔字段存储为 TINYINT http docs djangoproject com en dev ref models fields 当我检索它时 我得到 0 或 1 我不应该得到 False 或 True 吗
  • Python 中的嵌入式 Web 服务器? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 你能推荐一个简约的 Python Web 服务器吗 我可以将其嵌入到我的桌面应用程序中 有多简约以及目
  • 具有常量整数除数的高效浮点除法

    最近question https stackoverflow com questions 35506226 will the compiler optimize division into multiplication 是否允许编译器用浮点
  • Django:连接两个表

    这是我目前拥有的 class Sessions models Model sessionId models AutoField primary key True class Ip models Model ipId models AutoF
  • Prometheus 端点不工作 Spring Boot 2.0.0.RC1 Spring Webflux 已启用

    我按照这里的文档进行操作 https docs spring io spring boot docs 2 0 0 RC1 reference htmlsingle product ready endpoints enabling endpo
  • 包和 R 路径及安装错误

    我在尝试将软件包从根目录移动到用户帐户时弄乱了 R 安装 我尝试通过 apt get install 卸载 使用 purge 并重新安装 R r base r base dev 但我得到了错误 usr bin R line 236 usr
  • MVC SessionStateAttribute 不能用作全局属性

    如何在 MVC3 中将 SessionStateAttribute 设置为全局过滤器 在我的 Global asax 中 我在 RegisterGlobalFilters 方法中有这个 filters Add new SessionStat
  • 分层布局:未按照同一级别中的插入顺序创建节点

    我已经为每个节点分配了级别 现在 在每个级别上 我希望节点以其插入顺序出现 甚至文档也是这么说的 我见过很多发生这种情况的例子 与我的情况唯一的区别是 X 轴上也有边缘 这是一个片段 function main var graph node
  • 是否可以通过 Flash Builder 中的 file:// 调试ExternalInterface?

    我有一个使用 Adob e Flash Builder 4 5 用 ActionScript 3 编写的项目 它在一个中注册了几个函数ExternalInterface 以便可以从 JavaScript 调用它们 例如 如果我访问服务器上的
  • 从同一解决方案中的项目引用 Nuget 包所需的解决方案

    我有一个包含项目的解决方案 这些项目将作为通用 nuget 包在我的组织之间共享 该解决方案包含在一个 git 存储库中 并且我们有 TeamCity 为我们运行构建 尽管我们并不太先进 因为当我们准备好为给定项目生成 发布新的 Nuget
  • 从容器内的 docker-compose 命令运行 shell 脚本

    我正在尝试通过在 docker 容器内使用 docker compose 来运行 shell 脚本 我正在使用 Dockerfile 构建容器环境并安装所有依赖项 然后 我将所有项目文件复制到容器中 据我所知 这很有效 我对 docker
  • 如何在 Java 中清除控制台 - Eclipse

    如何在 Eclipse 中执行 打印一些语句后清除控制台 我已经使用了flush 但没有工作 只是发布示例代码 System out println execute System out println these set of lines
  • 使用“全局命名空间”;

    我只是想知道是否有一种方法可以使用 use 关键字使类的行为就像在全局命名空间中一样 因此该类只能从类的外部表现为命名空间类 就像是 namespace wherever somewhere deep deep inside use roo
  • Ruby on Rails 的弹出窗口

    我有用于 Popup 的 javascript 作为 POPUP JS 在我看来我想使用弹出窗口 它显示为 HTML a href exam groups 1 answers answer class submit button a
  • chrome 请求长时间未决

    在 Chrome 上测试我的网络应用程序时 我注意到一个请求需要很长时间才能加载 有时需要 20 秒 根据heroku日志 at info method GET path 1 message feeds competition id xxx
  • 将哈希值传递给 Powershell 函数问题

    我肯定错过了什么 我必须变量 var1 和 var2 var1 gm TypeName System Collections Hashtable 每个都有 IP 和 Port 属性 例如 var1 0 ip 1 1 1 1 var1 0 p
  • ES6 - 警告:setState(…):无法在现有状态转换期间更新

    我正在重写一些旧的 ReactJS 代码 并在修复此错误时陷入困境 该错误在控制台中重复了大约 1700 次 DOM 根本不渲染 警告 setState 无法在现有状态期间更新 过渡 例如在render或其他组件的 构造函数 渲染方法应该是
  • 如何在 morris.js 条形图上放置文本

    我有一个 morris js 条形图 我想放置count在此图的顶部 我调查了morris js 酒吧文档 http www oesmith co uk morris js bars html 找不到任何 悬停时应该显示value但在栏顶部