如何在Scatter Google Charts中显示两种不同的颜色?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Scatter Google Charts中显示两种不同的颜色?相关的知识,希望对你有一定的参考价值。
我正在使用Google Charts获取简单的散点图。我想在图表中使用两种不同的颜色。我们如何添加添加到不同的背景颜色。我需要为负片红色添加背景,并为正值部分添加绿色
function drawChart() {
// Define the chart to be drawn.
var data = new google.visualization.DataTable();
data.addColumn('number', '');
data.addColumn('number', '');
data.addRows([
[-0.5, 1],
[100, 1],
[-80, 2],
[25, 2],
[60, 8],
]);
// Set chart options
var options = {
title: 'guilt experience Vs eat satisfaction',
titlePosition: 'none',
position: 'center',
hAxis: {
title: 'Guilt Valueu00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0Eat Value',
minValue: 0,
maxValue: 15,
ticks: [0, 20, 40, 60, 80, 100, -20, -40, -60, -80, -100]
},
vAxis: {
title: '',
minValue: 0,
ticks: [0, 1, 2, 3, 4, 5, 6, 7, 8]
},
legend: {
position: 'none'
},
};
// Instantiate and draw the chart.
var container = document.getElementById('chart_div');
var chart = new google.visualization.ScatterChart(document.getElementById('chart_div'));
google.visualization.events.addListener(chart, 'ready', function() {
var layout = chart.getChartLayoutInterface();
for (var i = -0; i < data.getNumberOfRows(); i++) {
// add image above every fifth element
var xPos = layout.getXLocation(data.getValue(i, 0));
var yPos = layout.getYLocation(data.getValue(i, 1));
var whiteHat = container.appendChild(document.createElement('img'));
if (data.getValue(i, 0) < 0) {
whiteHat.src = 'https://i.imgur.com/LqiTeQI.png';
} else {
whiteHat.src = 'https://i.imgur.com/rACTObW.png';
}
whiteHat.style.position = 'absolute';
whiteHat.style.height = '15px';
whiteHat.style.width = '15px';
// 16x16 (image size in this example)
whiteHat.style.top = (yPos) + 'px';
whiteHat.style.left = (xPos) + 'px';
}
});
chart.draw(data, options);
}
google.charts.setOnLoadCallback(drawChart);
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js">
</script>
<script type="text/javascript">
google.charts.load('current', {
packages: ['corechart', 'scatter']
});
</script>
<div id="chart_div" ></div>
我想添加不同的背景颜色,如上图像正面部分不同颜色和负面部分不同颜色
答案
要在图表中添加背景颜色,我们可以使用'area'
系列,
一个用于正面颜色,一个用于负面颜色。
加载初始数据后,
添加两个额外的列。
为图表的整个范围添加这些列的行/值。
使用null
作为原始列值。
// add columns & rows for background
data.addColumn('number', '');
data.addRow([0, null, 8]);
data.addRow([-100, null, 8]);
data.addColumn('number', '');
data.addRow([0, null, null, 8]);
data.addRow([100, null, null, 8]);
在选项中,添加以下选项...
colors: ['blue', 'red', 'green'], // colors for the series
lineWidth: 0, // remove line for top of area series
pointSize: 0, // remove points on area series
series: { // change last two series to area
1: {type: 'area'},
2: {type: 'area'}
}
然后在放置图像标记时,忽略原始值为null
的列。
// exclude null values
var yValue = data.getValue(i, 1);
if (yValue !== null) {
var xPos = layout.getXLocation(data.getValue(i, 0));
...
请参阅以下工作代码段...
google.charts.load('current', {
packages: ['corechart']
}).then(function () {
var data = new google.visualization.DataTable();
data.addColumn('number', '');
data.addColumn('number', '');
data.addRows([
[-0.5, 1],
[100, 1],
[-80, 2],
[25, 2],
[60, 8],
]);
// add columns & rows for background
data.addColumn('number', '');
data.addRow([0, null, 8]);
data.addRow([-100, null, 8]);
data.addColumn('number', '');
data.addRow([0, null, null, 8]);
data.addRow([100, null, null, 8]);
var options = {
title: 'guilt experience Vs eat satisfaction',
titlePosition: 'none',
position: 'center',
hAxis: {
title: 'Guilt Valueu00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0u00A0Eat Value',
minValue: 0,
maxValue: 15,
ticks: [0, 20, 40, 60, 80, 100, -20, -40, -60, -80, -100]
},
vAxis: {
title: '',
minValue: 0,
ticks: [0, 1, 2, 3, 4, 5, 6, 7, 8]
},
legend: {
position: 'none'
},
colors: ['blue', 'red', 'green'],
lineWidth: 0,
pointSize: 0,
series: {
1: {type: 'area'},
2: {type: 'area'}
}
};
var container = document.getElementById('chart_div');
var chart = new google.visualization.ScatterChart(document.getElementById('chart_div'));
google.visualization.events.addListener(chart, 'ready', function() {
var layout = chart.getChartLayoutInterface();
for (var i = -0; i < data.getNumberOfRows(); i++) {
// exclude null values
var yValue = data.getValue(i, 1);
if (yValue !== null) {
var xPos = layout.getXLocation(data.getValue(i, 0));
var yPos = layout.getYLocation(yValue);
var whiteHat = container.appendChild(document.createElement('img'));
if (data.getValue(i, 0) < 0) {
whiteHat.src = 'https://i.imgur.com/LqiTeQI.png';
} else {
whiteHat.src = 'https://i.imgur.com/rACTObW.png';
}
whiteHat.style.position = 'absolute';
whiteHat.style.height = '15px';
whiteHat.style.width = '15px';
whiteHat.style.top = (yPos) + 'px';
whiteHat.style.left = (xPos) + 'px';
}
}
});
chart.draw(data, options);
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>
以上是关于如何在Scatter Google Charts中显示两种不同的颜色?的主要内容,如果未能解决你的问题,请参考以下文章