我正在查看以下教程 https://plot.ly/python/pie-charts/的"饼图子图"部分(页面上的最后一个)。
在一次绘制多个图形时,我无法弄清楚如何理解域变量。例如:
{
'labels': ['1st', '2nd', '3rd', '4th', '5th'],
'values': [38, 27, 18, 10, 7],
'type': 'pie',
'name': 'Starry Night',
'marker': {'colors': ['rgb(56, 75, 126)',
'rgb(18, 36, 37)',
'rgb(34, 53, 101)',
'rgb(36, 55, 57)',
'rgb(6, 4, 4)']},
'domain': {'x': [0, .48],
'y': [0, .49]},
'hoverinfo':'label+percent+name',
'textinfo':'none'
},
将在左下角的坐标中绘制饼图。
有人可以解释域变量(及其 x 和 y 分量)在实践中如何工作吗?
让我们只使用 Javascript,因为它可以在这里执行。Domain 属性在 Python 和 Javascript 中是相同的。
从文档中:
domain
x
(阵列)默认值:[0, 1]
设置此饼图迹线的水平域(以绘图分数为单位)。 每个对象都有下面列出的一个或多个键。
数组的第一个成员是起始位置,第二个成员是结束位置。
因为x
0
意味着一直向左,1
一直向右。
因为y
0
是顶部,1
是底部。
例如,左上象限将是x = [0, 0.5]
和y = [0, 0.5]
如果您有多个图,例如,在下面的示例中有两个div
,每个有 4 个图,每个图的域指定它占用的空间。在第一个示例中,每个图获得四分之一的可用空间(即 x 和 y 设置为 0 到 0.5 或 0.5 到 1)。
在第二个示例中,最后一个图的domain
与其他域重叠(0.25 到 0.75)。
在第三个示例中,最后一个图的domain
较大,并且与其余图重叠(0 到 0.75)。
简而言之,domain
只是指定子图占用总地块面积的哪个空间。
var allValues = [
[50, 30, 20],
[45, 30, 25],
[55, 25, 20],
[50, 15, 35]
];
var data = [{
values: allValues[0],
type: 'pie',
domain: {
x: [0, .5],
y: [0, .5]
},
}, {
values: allValues[1],
type: 'pie',
domain: {
x: [0.5, 1],
y: [0, .5]
}
}, {
values: allValues[2],
type: 'pie',
domain: {
x: [0, .5],
y: [.5, 1]
}
}, {
values: allValues[3],
type: 'pie',
domain: {
x: [0.5, 1],
y: [0.5, 1]
},
}];
Plotly.newPlot('myDiv', data);
data[3].domain.x = [0.25, 0.75];
data[3].domain.y = [0.25, 0.75];
Plotly.newPlot('myDiv2', data);
data[3].domain.x = [0.0, 0.75];
data[3].domain.y = [0.0, 0.75];
Plotly.newPlot('myDiv3', data);
<div id='myDiv'></div>
<div id='myDiv2'></div>
<div id='myDiv3'></div>
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>