我在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"}}}
          );
}


最佳答案

对我有用的解决方案是指定widthheight相等,然后显式指定hAxis.minValuehAxis.maxValuevAxis.minValuevAxis.maxValue。我计算数据的xspan和yspan,选择两者中的最大值,然后分别计算hAxis和vAxis的最小值/最大值。

09-16 15:55