google.charts.load('current', {
callback: function() {
drawVisualization();
window.addEventListener('resize', drawVisualization, false);
},
packages:['corechart']
});
function drawVisualization() {
var data = new google.visualization.DataTable();
data.addColumn('number', 'PC');
data.addColumn('number', 'A');
data.addColumn({type: 'string', role: 'annotation'});
data.addColumn({ type: 'string', role: 'tooltip'});
data.addColumn({type: 'string', role: 'style'});
data.addColumn('number', 'B');
data.addColumn({type: 'string', role: 'annotation'});
data.addColumn({ type: 'string', role: 'tooltip'});
data.addColumn({type: 'string', role: 'style'});
data.addColumn('number', 'C');
data.addColumn({type: 'string', role: 'annotation'});
data.addColumn({ type: 'string', role: 'tooltip'});
data.addColumn({type: 'string', role: 'style'});
data.addRow([{v: 2, f: ''}, 0.8, '0.8x', 'PC#1, Low, 0.8x',
'point { size: 5; shape-type: square; fill-color: #DB1D40; }'
,null,null,null, null,null,null,null,null]);
data.addRow([{v: 2, f: ''}, 7.4, '7.4x', 'PC#1, High, 7.4x',
'point { size: 5; shape-type: square; fill-color: #DB1D40; }',
null,null,null, null,null,null,null,null]);
data.addRow([{v: 2, f: ''}, 12.2, '12.2x', 'PC#1, Multiple, 12.2x',
'point { size: 5; shape-type: triangle; fill-color: #DB1D40; }',
null,null,null, null,null,null,null,null]);
data.addRow([{v: 3, f: ''}, null,null,null,null,
5, '5.0x', 'PC#2, Low, 5.0x',
'point { size: 5; shape-type: square; fill-color: #DB1D40; }',
null,null,null,null]);
data.addRow([{v: 3, f: ''}, null,null,null,null,
15, '15x', 'PC#2, High, 15x',
'point { size: 5; shape-type: square; fill-color: #DB1D40; }',
null,null,null,null]);
data.addRow([{v: 3, f: ''}, null,null,null,null,
23, '23x', 'PC#2, Multiple, 23x',
'point { size: 5; shape-type: triangle; fill-color: #DB1D40;}',
null,null,null,null]);
data.addRow([{v: 1, f: ''}, null,null,null, null,null,null,null,null,
2, '2.0x', 'PC#2, Low, 2.0x',
'point { size: 5; shape-type: square; fill-color: #DB1D40; }']);
data.addRow([{v: 1, f: ''}, null,null,null,null,null,null,null,null,
7, '7x', 'PC#2, High, 7x',
'point { size: 5; shape-type: square; fill-color: #DB1D40; }']);
data.addRow([{v: 1, f: ''}, null,null,null,null,null,null,null,null,
11, '11x', 'PC#2, Multiple, 11x',
'point { size: 5; shape-type: triangle; fill-color: #DB1D40;}']);
var container = document.getElementById('visualization');
var chart = new google.visualization.ComboChart(container);
var annotations = {};
google.visualization.events.addOneTimeListener(chart, 'ready', function() {
Array.prototype.forEach.call(container.getElementsByTagName('text'), function (text, index) {
if (text.getAttribute('text-anchor') === 'middle') {
annotations[index] = {};
if(!text.innerHTML.startsWith("PC")) {
annotations[index].x = parseFloat(text.getAttribute('x')) + 20;
} else {
annotations[index].x = parseFloat(text.getAttribute('x'));
}
annotations[index].y = parseFloat(text.getAttribute('y')) + 18;
}
});
var observer = new MutationObserver(function() {
Array.prototype.forEach.call(container.getElementsByTagName('text'), function (text, index) {
if (text.getAttribute('text-anchor') === 'middle') {
text.setAttribute('x', annotations[index].x);
text.setAttribute('y', annotations[index].y);
}
});
});
observer.observe(container, {
childList: true,
subtree: true
});
});
chart.draw(data, {
legend: 'none',
colors: ['GREY'],
seriesType : 'bars',
series : {
0 : {
type : 'line',
targetAxisIndex : 0,
lineDashStyle: [3, 3]
},
1 : {
type : 'line',
targetAxisIndex : 0,
lineDashStyle: [6, 3]
},
2 : {
type : 'line',
targetAxisIndex : 0,
lineDashStyle: [6, 3]
}
},
hAxis: {
gridlines: {color: '#fff'},
ticks: [
{v: 0, f: 'PC#0'},
{v: 1, f: 'PC#1'},
{v: 2, f: 'PC#2'},
{v: 3, f: 'PC#3'},
{v: 4, f: '4'}
]
},
pointSize: 5,
dataOpacity: 1.0,
});
}
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="visualization"></div>
を見るにはよくやった、そのはきれいに沿って来てのように見える... – WhiteHat
@WhiteHat:ありがとうございました。あなたはこれを達成するために大きな助けをしました。注釈テキストは、ポイントが互いに非常に近いときに重複しています。また、ツールチップを見るために、私はマウスを非常にゆっくりとポイントの周りに移動させなければならず、マウスがそのポイントに正確にホバーしているときにツールチップが来ない。あなたはフィドルを見て、私に助けてください:https://jsfiddle.net/sainirohit77/5xb68cfw/ – rohit