- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在为一个项目使用 Chart.js ( http://www.chartjs.org/ )。
有人知道如何在实际 Canvas 上绘制新内容,例如标题或添加自定义图像,向图表添加“边距”吗?
最佳答案
是的。
您可以设置 ChartJs 的 onAnimationComplete
回调来在 ChartJs 完成它自己的绘图和动画时调用您的自定义绘图代码。
在该回调中,您可以获得 Canvas 上下文
(== 与您最初输入 ChartJS 的相同 Canvas /上下文)并使用该上下文绘制您想要的任何新自定义内容。
这是它如何工作的一个例子:
Inserting percentage charts.js doughnut
ChartJS 的图表内容没有原生的“填充”。获得一些填充的一种方法是将图表绘制到较小的内存 Canvas ,然后将该内存 Canvas 绘制到您的可见 Canvas ,并带有偏移量以允许您需要的填充。
这是一个例子:
var canvas=document.getElementById("canvas");
var ctx=canvas.getContext("2d");
var cw=canvas.width;
var ch=canvas.height;
var pieData = [
{
value: 200,
color:"#F7464A",
highlight: "#FF5A5E",
label: "Red"
},
{
value: 50,
color: "#46BFBD",
highlight: "#5AD3D1",
label: "Green"
},
{
value: 100,
color: "#FDB45C",
highlight: "#FFC870",
label: "Yellow"
},
{
value: 40,
color: "#949FB1",
highlight: "#A8B3C5",
label: "Grey"
},
{
value: 120,
color: "#4D5360",
highlight: "#616774",
label: "Dark Grey"
}
];
// create an in-memory canvas (c)
var c = document.createElement("canvas");
// size it to your desired size (without padding)
c.width=100;
c.height=100;
// make it hidden
c.style.visibility='hidden';
document.body.appendChild(c);
// create the chart on the in-memory canvas
var cctx = c.getContext("2d");
window.myPie = new Chart(cctx).Pie(pieData,{
responsive:false,
animation:false,
// when the chart is fully drawn,
// draw the in-memory chart to the visible chart
// allowing for your desired padding
// (this example pads 100 width and 50 height
onAnimationComplete:function(){
ctx.drawImage(c,100,50);
ctx.fillText('Space to add something here with 50x100 padding',5,20);
ctx.fillText('Added Padding',5,90);
ctx.beginPath();
ctx.moveTo(0,100);
ctx.lineTo(100,100);
ctx.stroke();
}
});
body{ background-color: ivory; }
canvas{border:1px solid red;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/1.0.2/Chart.min.js"></script>
<canvas id="canvas" width=300 height=300></canvas>
关于javascript - Chart.js 添加自定义标题、副标题、图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29040023/
我有一个很长的表格,我需要让副标题随着表格的一部分滚动。我知道有很多函数可以滚动 ,但在让其他行也滚动时,我有点迷茫。基本上,这是表的结构。
我在 3x3 网格中有一系列 9 个子图,每个子图都有一个标题。我想为每一行添加一个标题。为此,我考虑使用字幕。问题是,如果我使用 3 个字幕,它们似乎被覆盖了,似乎只显示了最后一个。 这是我的基本代
我创建了很多图钉,当我按下图钉时,标题必须显示,而副标题必须隐藏,因为它是一段很长的文本并且出现在 UItextView 中。问题是我没有找到隐藏字幕的方法,所以在标题下,我有一段很长的文字,结尾是:
是否可以像普通工具栏一样为 CollapsingToolbarLayout 设置副标题?据我所知,没有以编程方式执行此操作的方法。另外,如何将白色返回箭头设置为工具栏?使用 getSupportAct
我可以设置CollapsingToolbarLayout 的标题吗?通过setTitle方法? 还有设置字幕的方法吗? 最佳答案 如果您希望字幕在 AppBar 完全折叠时转到 Toolbar,您应该
我有一个数据框列表,我用它来制作 ggplot 列表s,然后用 cowplot 组装成一个图网格。 。然后我需要附加共享标题、副标题和说明文字。我希望这些标签具有相同的主题元素(大小、字体等),就像它
我正在尝试使用字幕样式在单元格的标题中获取两个文本。我试过 "cell.textLabel!.text = data.valueForKeyPath("divelocation, divenumber
使用 Xcode 4.6,我试图显示一个典型的 UITableView,其单元格带有字幕。 如果我没记错的话,代码是这样的: - (UITableViewCell *)tableView:(UITab
我创建了一个自定义注释来显示我的数据。数据来自移动的车辆,我必须更新它们在 map 上的位置及其标题(它显示最后更新时间)。 我的第一个方法是简单地删除所有注释并重新创建它们。然而,这会导致大量可怕的
我正在尝试在 Objective-C 中制作电话簿之类的应用程序。我使用 NSDictionary 来填充我的 UITableViewCell。我得到了正确的标题、索引和章节,但是我无法为每个标题获得
我正在将注释加载到我的 map View 上。加载 map 时,注释显示为图钉。 但是,标题和副标题不会自动出现在图钉上。目前,用户需要在标题显示之前点击图钉。 有没有办法让标题在加载 map 时自动
我正在为一个项目使用 Chart.js ( http://www.chartjs.org/ )。 有人知道如何在实际 Canvas 上绘制新内容,例如标题或添加自定义图像,向图表添加“边距”吗? 最佳
我想这样做,但使用折叠工具栏布局或在滚动后在工具栏中显示 Logo 和标题。
我正在开发适用于 Android 的 Chromecast 应用程序,并尝试让 WebVTT 字幕/副标题正常工作。 我按如下方式实例化一个 MediaTrack 对象: Me
我正在解析一些带有一些兴趣点的数据,并尝试使用 MapKit 框架在 map 上显示它们。我为 map 上的对象创建了一个自定义类,我称之为 MyLocation。 MyLocation.h: #im
我正在研究 Using Text Kit to Manage Text in Your iOS Apps教程。它是为 Objective C 编写的,但我想无论如何我都会尝试使用 Swift 来完成它
在Android Support Design Library发布后,想实现一个类似Twitter Profile页面的效果,其中Toolbar的title 和 subtitle 可以随着屏幕垂直滚动
我的代码执行两列,如下所示: 邻里1 餐厅1 邻里1 餐厅2 邻里1 餐厅3 我想要: 邻里1 餐厅1 餐厅2 餐厅3 $result = mysql_query("SELECT ID,RName,
在最新的 Apple Music (iOS 13) 中,“为你”选项卡将当前日期作为位于 View 标题(名为“为你”)上方的“副标题”。如何在 SwiftUI 中实现这样的字幕? 我似乎找不到允许字
我一直在无休止地寻找一种可以在保持结构的同时从 PDF 中提取文本的工具。也就是说,给定这样的文本: 标题 副标题1 正文1 副标题2 正文2 或 标题 副标题 1。正文1 副标题2。正文2 我想要一
我是一名优秀的程序员,十分优秀!