是否可以在柱状图的每个条形图上添加一个额外的标签,而不会影响标签存在的条形图?
这是我当前的图表设置
this.populationChart.myChartObject.data = {
'cols': [
{ id: 's', label: 'Stage', type: 'string' },
{ id: 'v', label: 'Value', type: 'number' },
{ id: 'p', label: 'Percent', type: 'number' },
{ role: 'style', type: 'string' }
], 'rows': [
{
c: [
{ v: 'Meet Criteria' },
{ v: this.populationSummary.inDatabase },
{ v: this.studyService.calcPercent(this.populationSummary.inDatabase, this.populationSummary.total) },
{ v: '#e94926' }
]
},
{
c: [
{ v: 'Invited' },
{ v: this.populationSummary.invited },
{ v: this.studyService.calcPercent(this.populationSummary.invited, this.populationSummary.inDatabase) },
{ v: '#62b8af' }
]
},
{
c: [
{ v: 'Screened' },
{ v: this.populationSummary.screened },
{ v: this.studyService.calcPercent(this.populationSummary.screened, this.populationSummary.invited) },
{ v: '#f2673a' }
]
},
{
c: [
{ v: 'Qualified' },
{ v: this.populationSummary.qualified },
{ v: this.studyService.calcPercent(this.populationSummary.qualified, this.populationSummary.screened) },
{ v: '#ffc828' }
]
},
{
c: [
{ v: 'Scheduled' },
{ v: this.populationSummary.scheduled },
{ v: this.studyService.calcPercent(this.populationSummary.scheduled, this.populationSummary.screened) },
{ v: '#5a5538' }
]
}
]
};
calcPercent = (numerator: number, denominator: number): number => {
if (denominator === 0) {
return 0;
};
if (denominator !== 0) {
return (Math.round((numerator / denominator) * 100));
};
};
现在,每个阶段的行为显示两个条形。一栏为value
标签的值,另一栏为percentage
标签。
我想要的是每个栏的高度都基于value
标签,当我鼠标悬停在栏上时,弹出窗口会显示value
标签和该标签的val,但也会显示percentage
标签。
基本上,条形高度/演示文稿仅基于value
标签,但在鼠标悬停时显示标签及其值。
这可能吗?
答案 0 :(得分:-1)
在这个例子中:
var data = google.visualization.arrayToDataTable([
['Element', 'Density', { role: 'style' }, { role: 'annotation' } ],
['Copper', 8.94, '#b87333', 'Cu' ],
['Silver', 10.49, 'silver', 'Ag' ],
['Gold', 19.30, 'gold', 'Au' ],
['Platinum', 21.45, 'color: #e5e4e2', 'Pt' ]
]);
这是必须对标签进行的编辑:
<script type="text/javascript"
src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load("current", {packages:['corechart']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
["Element", "Density", { role: "style" } ],
["Copper", 8.94, "#b87333"],
["Silver", 10.49, "silver"],
["Gold", 19.30, "gold"],
["Platinum", 21.45, "color: #e5e4e2"]
]);
var view = new google.visualization.DataView(data);
view.setColumns([0, 1,
{ calc: "stringify",
sourceColumn: 1,
type: "string",
role: "annotation" },
2]);
var options = {
title: "Density of Precious Metals, in g/cm^3",
width: 600,
height: 400,
bar: {groupWidth: "95%"},
legend: { position: "none" },
};
var chart = new google.visualization.ColumnChart(document.getElementById("columnchart_values"));
chart.draw(view, options);
}
</script>
<div id="columnchart_values" style="width: 900px; height: 300px;"></div>