- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Column Chart使用 Google 的图表 API,除了 Y 轴 (vAxis
) 之外,一切都很好。图表本身处理的美元值(value)从几千到数十亿不等,具体取决于数据 View 。 hAxis
具有漂亮的“短”
格式,可让 Google Chart API 为您完成所有繁重的缩写工作(5,000 到 5K、60,000,000 到 6M 等) ,但我们想在值前加上美元符号。我知道还有一个内置的 'currency'
格式,您可以提供自己的自定义格式,但我找不到一种方法来使这些格式中的任何一个表现得像 'short '
确实如此。
...
// set chart options
var options = {
chartArea: { top: 70, left: 75, width: 675, height: 300 },
isStacked: true,
vAxis: { format: 'short', gridlines: {count: 6}, textStyle: {fontSize: 12} },
hAxis: { textStyle: {fontSize: 12} },
legend: { position: 'top', maxLines: 3 }
};
// Instantiate and draw our chart, passing in some options.
var chart = new google.visualization.ColumnChart($('colchart'));
chart.draw(data, options);
...
这似乎是一种应该非常非常普遍的东西,并且可能已经内置到库中了。我希望我只是想念它。除了手动滚动自定义解决方案之外,还有什么方法可以做到这一点吗?
最佳答案
您可以在 data 中为数字添加前缀 $
以及 'short'
。
找不到使用标准选项格式化轴的方法,但正如您所提到的,您可以使用 'ready'
事件自行滚动。
改编自前面的示例...
google.charts.load('44', {
callback: drawChart,
packages: ['line', 'corechart']
});
function drawChart() {
// adapted from previous example
var data1 = google.visualization.arrayToDataTable(
[['id', 'C1'],[1,0.244543243223],[2,0.343454312334],[3,0.6543223411],[4,0.34231342342314],[5,0.454343343223],[6,0.5434221],[7,0.54324324314],[8,0.45324517],[9,0.543222321],[10,0.54325445519]]
);
var data2 = google.visualization.arrayToDataTable(
[['id', 'C2'],[1,0.43654362],[2,0.46547543],[3,0.65475431],[4,0.65765454434],[5,0.6765443],[6,0.4654436],[7,0.3534657],[8,0.524343434],[9,0.453455532],[10,0.54354354358]]
);
var data3 = google.visualization.arrayToDataTable(
[['id', 'C3'],[1,0.5345524],[2,0.6543453432],[3,0.53453465645614],[4,0.63245524],[5,0.543543536533], [6,0.53454355334],[7,0.242354531],[8,0.3424543523],[9,0.5436536544],[10,0.5425345332]]
);
for (var i = 0; i < data1.getNumberOfRows(); i++) {
data1.setValue(i, 1, data1.getValue(i, 1) * 1000000);
}
for (var i = 0; i < data2.getNumberOfRows(); i++) {
data2.setValue(i, 1, data2.getValue(i, 1) * 1000000);
}
for (var i = 0; i < data3.getNumberOfRows(); i++) {
data3.setValue(i, 1, data3.getValue(i, 1) * 1000000);
}
var chartDiv = document.getElementById('chart');
// format numbers in second column to 5 decimals
var formatter = new google.visualization.NumberFormat({
prefix: '$',
pattern: 'short'
});
formatter.format(data1, 1);
formatter.format(data2, 1);
formatter.format(data3, 1);
var options1 = {
chartArea: { top: 70, left: 75, width: 675, height: 300 },
height: 400,
isStacked: true,
vAxis: { format: 'short', gridlines: {count: 6}, textStyle: {fontSize: 12} },
hAxis: { textStyle: {fontSize: 12} },
legend: { position: 'top', maxLines: 3 }
};
var joinedData = google.visualization.data.join(data1, data2, 'full', [[0, 0]], [1], [1]);
var joinedData2 = google.visualization.data.join(joinedData, data3, 'full', [[0, 0]], [1,2], [1]);
var chart1 = new google.visualization.ColumnChart(chartDiv);
// use the 'ready' event to modify the chart once it has been drawn
google.visualization.events.addListener(chart1, 'ready', function () {
var axisLabels = chartDiv.getElementsByTagName('text');
for (var i = 0; i < axisLabels.length; i++) {
if (axisLabels[i].getAttribute('text-anchor') === 'end') {
axisLabels[i].innerHTML = '$' + axisLabels[i].innerHTML;
}
}
});
chart1.draw(joinedData2, options1);
}
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart"></div>
关于charts - 如何在 Google Charts 中创建 "short currency"轴格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35847626/
我有一个通过 Google Charts Org Chart API 呈现的图表。当用户单击节点时,如何获取有关所选节点的数据。我理解到我进行“getSelection”调用以将选择信息输出到 Jav
我使用Chart.js显示雷达图。我的问题是某些标签很长: 图表无法显示或显得很小。 那么,有没有办法换行或为标签分配最大宽度? 感谢您的帮助! 最佳答案 对于Chart.js 2.0+,您可以使用数
我想问一下使用Chart.js http://www.chartjs.org/ 可以吗?获得组合条形图和折线图? 感谢您的任何建议。 最佳答案 下面的答案与chart.js 1.x有关。 Chart.
我在addData和removeData函数中添加了chart.resize(),但它总是增加高度并且永远不会减少! 当用户单击菜单项时,我正在更新图表。有些项目有超过 100 个数据,有些项目只有
horizontal bar chart var barOptions_stacked1 = { tooltips: { e
我们将 Chart.js 与 clojurescript 和 Reagent 一起使用。现在我知道 Chart.js 有一个 Chart.update() 方法来用新数据更新图表。所以问题是,如何设置
我想显示一个包含多个数据集的条形图,如下所示,。。我可以获取如下所示的数据。。而是如何转换这个JSON数组,如下所示。我需要显示过去7天每个班次的出勤百分比。。感谢你在这方面的帮助。谢谢!。=编辑=
I want to display a bar chart with multiple datasets as shown below,我想显示一个包含多个数据集的条形图,如下所示, I'
假设我有一个 Charting.Chart : 我想导出到 Excel.Workbook.Worksheet以便我稍后可以“播放”数据(例如在 Excel 图表上拖放更多数据等): 请不要介意第二张图
离子性: ionic(Ionic CLI):4.10.3(/Users/faiz/.nvm/versions/node/v8.9.4/lib/node_modules/ionic) 离子框架:离子角3
我正在使用Chart.js来可视化我的数据,如下图所示。。。我想在图表中间加一张照片。。。如何在甜甜圈图表的中间添加照片?下面是我的javascript代码:
我正在使用 Kendo 饼图,我想将其配置为在没有数据可显示时显示一条消息。我正在使用以下 js 函数配置饼图 - 变量“JsPieChartDataSet”是一组 JSON 格式的数据。 是否有可以
是否可以在图表和x轴之间获得更多空间? 是否可以在图表的右侧和 Canvas 区域的末端之间留出更多的空间?我想在图表旁边的 Canvas 中添加更多元素,但是这是不可能的,因为图表占用了整个 Can
我正在使用chart.js,在图表的某些点的多日条目之间缺少一些数据。我已将这些值分配为null,但希望图表在缺失点之间绘制一条连接线。这是我所拥有的: 有没有办法将chart.js中的点连接起来?也
我正在生成一些谷歌图表,但我被困在这里。 Google 允许您将列堆叠起来。但它要么受到限制,要么我无法将其配置为工作。取自谷歌,这里有一个例子,显示了两个国家每年生产的咖啡杯数: 假设我有另一个相同
使用 Google Charts 条形图,是否可以更改一个条形的颜色。例如,我想将 2006 年的数据设为红色(其他条形为蓝色)。 function drawVisualization() {
我目前正在尝试重新设计设计布局。我通过尝试和错误得到了大部分。我唯一不明白的部分是: 1.) 左侧和底部的黑色轴。所以只有那些是黑色的2.) 里面的浅灰色轴。如何在颜色上应用不透明度或使用我自己的颜色
我使用以下命令创建了一个名为“abc”的 Helm 图表helm create abc现在,当我安装此图表时,所有创建的kuberenets资源将具有一个包含“abc”的名称。 现在,我必须将图表“a
我正在构建一个折线图,除了 ChartScrollbar 中的标签之外,一切正常,因为类别名称有点长,cahrtScrollbar 中的标签相互堆叠使其无法读取。我想知道是否可以隐藏标签、仅显示一些标
我正在使用 Chart.js 2.5。我的情况是,我有一个包含 40 个数据的数据集,但我只想在折线图中显示 7 个数据,但仍然可以水平向左/向右移动以发现其余数据。 我尝试了ticks.maxTic
我是一名优秀的程序员,十分优秀!