我在Sage中制作了图表,可以在其中选择长宽比:
长宽比表示单位正方形的表观高度/宽度比。如果希望垂直单位与水平单位一样大,请将宽高比指定为1。
show(circle((1,1), 1) + plot(x^2, (x,0,5)), aspect_ratio=1)
现在,我正在使用Google App Engine和Google图表。我不知道如何在那里设置纵横比。例如,shape1和shape 2均为[-1; 1] X和[-1; 1]Y。但是在屏幕上,它看起来像矩形,因为我设置为“ width:600,height:400”。
function drawVisualization() {
// Create and populate the data table.
var data = new google.visualization.DataTable();
data.addColumn('number', 'X');
data.addColumn('number', 'Shape 1');
data.addColumn('number', 'Shape 2');
for (var i = 0; i < 500; ++i) {
data.addRow([Math.sin(i / 5) * 0.25, Math.cos(i / 25), null])
}
for (var i = 0; i < 500; i++) {
data.addRow([Math.sin(i / 25), null, Math.cos(i / 10) * 0.5]);
}
// Create and draw the visualization.
var chart = new google.visualization.ScatterChart(
document.getElementById('visualization'));
chart.draw(data, {title: 'Cool shapes',
width: 600, height: 400,
vAxis: {title: "Y", titleTextStyle: {color: "green"}},
hAxis: {title: "X", titleTextStyle: {color: "green"}}}
);
}
最佳答案
对我有用的解决方案是指定width
和height
相等,然后显式指定hAxis.minValue
,hAxis.maxValue
和vAxis.minValue
,vAxis.maxValue
。我计算数据的xspan和yspan,选择两者中的最大值,然后分别计算hAxis和vAxis的最小值/最大值。