如何创建带有自定义刻度线而不是数字的数轴?

如何创建带有自定义刻度线而不是数字的数轴?

我在这里看到了常规数字线的示例,但我无法制作带有刻度标记变量的东西。如下所示:

在此处输入图片描述

非常感谢您的帮助!

答案1

这是使用以下方式绘制的自定义轴的示例Asymptote

在此处输入图片描述

// custaxis.asy
//
// run 
//   asy custaxis.asy
// to get a standalone custaxis.pdf
//
settings.tex="pdflatex";
import graph;
size(6cm);
import fontsize;defaultpen(fontsize(8pt));
texpreamble("\usepackage{lmodern}"+"\usepackage{amsmath}"
  +"\usepackage{amsfonts}"+"\usepackage{amssymb}");
pen linePen=darkblue+0.8bp;
pen bgPen=paleyellow;
guide gaxis=arc((0,0),1,200,390);
guide gdots=subpath(gaxis,reltime(gaxis,0.45),reltime(gaxis,0.7));

draw(gaxis,linePen);

int n=8;

string fmark(int k){return (k>1)?string(k):"";}

for(int i=0;i<4;++i){
  tick(relpoint(gaxis,i/n),-plain.I*reldir(gaxis,i/n),ticksize);
}
for(int i=n;i>n-3;--i){
  tick(relpoint(gaxis,i/n),-plain.I*reldir(gaxis,i/n),ticksize);
}
label("$0$",relpoint(gaxis,0),-3*plain.I*reldir(gaxis,0));
label("$t$",relpoint(gaxis,1),-3*plain.I*reldir(gaxis,1));
for(int i=1;i<4;++i){
  label("$\tfrac{"+fmark(i)+"t}n$",relpoint(gaxis,i/n),-3*plain.I*reldir(gaxis,i/n));
}
for(int i=1;i<3;++i){
  label("$\tfrac{n-"+string(i)+"}n\,t$",relpoint(gaxis,(n-i)/n),-3*plain.I*reldir(gaxis,(n-i)/n));
}
draw(gdots,bgPen+3bp);
draw(gdots,Dotted(linePen));

shipout(bbox(Fill(bgPen)));

相关内容