我正在使用 Asymptote 的图形模块。如何使水平刻度与垂直刻度不同?
常见问题解答告诉我使用线性,但我似乎无法让它为我工作。
这是一个示例文件。x 轴和 y 轴在 0 和 1 之间有相同的距离;如何使 x 轴的距离为 y 轴距离的一半?
include graph;
int picnum = 5;
picture p;
unitsize(p, 1.25cm);
xaxis(p,"$x$",YZero,
xmin=-1,xmax=6,
RightTicks(Label("$%.2g$",tickpen),
new real[]{0,1,2,3,4,5}), // Step=1,step=1),
above=false);
yaxis(p,"Probability",XEquals(-1),ymin=0,ymax=1.1,
LeftTicks(Label("$%.2g$",tickpen),
new real[]{0,1}, // Step=1,step=1,
pTick=black, ptick=linetype("4 4")+grey,
extend=false));
shipout(format("graph%02d",picnum),p,format="pdf");
答案1
Linear
有一个可选参数:乘法缩放因子。对于你的情况,我希望代码是所需的代码
包括图形;int picnum = 5;图片p;单位尺寸(p,1.25cm);
scale(p,Linear,Linear(2));
dot(p,Scale(p,(1,1)),red);
xaxis(p,"$x$",YZero,
xmin=-1,xmax=6,
RightTicks(Label("$%.2g$"),
new real[]{0,1,2,3,4,5}), // Step=1,step=1),
above=false);
yaxis(p,"Probability",XEquals(-1),ymin=0,ymax=1.1,
LeftTicks(Label("$%.2g$"),
new real[]{0,1}, // Step=1,step=1,
pTick=black, ptick=linetype("4 4")+grey,
extend=false));
shipout(format("graph%02d",picnum),p,format="pdf");
注意dot(p,Scale(p,(1,1)),red);
将点 (1,1) 放置在正确的位置。
奥格