Latex 中一种特殊的圆形图

Latex 中一种特殊的圆形图

有人知道我该如何在乳胶中绘制这种图表吗?提前致谢。 在此处输入图片描述

答案1

可能的Asymptote版本:

//
// diag.asy
//
// run 
//    asy diag.asy
//
// to get a standalone  diag.pdf

settings.tex="pdflatex";
unitsize(1pt);

import fontsize;defaultpen(fontsize(7));
texpreamble("\usepackage{lmodern}");

string stop="set theory";
string[] sleft={ 
  "general topology", "partial orderings", "Boolean algebras", "measures and integrals",
  "integral equations", "differential equations", "complex analysis", "summation methods",
  "model theory", "numerical methods", "approximation", "splines and wavelets",
  "analytic complexity", "Coding theory", "mathematical finance", "learning theory",
};

string sbot="probability theory";

string[] sright={
  "linear algebra", "multilinear algebra", "categories", "combinatorics", 
  "integral transforms", "orthogonal series", "harmonic analysis", "K-theory",
  "global analysis", "convex geometry", "optimization", "game theory",
  "control theory", "calculus of variations", "ergodic theory", "quantum physics",
};

string s0="topological linear spaces";

string s1="Banach spaces";
string s2="linear operators";
string s3="Banach lattices";
string s4="Banach algebras";
int n=sleft.length;

real dh=8;
real r=n*dh/2;
real R=1.1*r;
pair O=0,p;
for(int i=1;i<n;++i){
  p=R*(sqrt(1-(1-dh/r*i)^2),1-dh/r*i);
  label(sright[i-1],p,plain.E);
  label(sleft[i-1],(-p.x,p.y),plain.W);
}
draw(circle(O,r),deepblue+0.6);
label(stop,(0,R));
label(sbot,(0,-R));

label(s0,(0,0.4r));
label("\textsc{"+s1+"}",O,plain.N);
label("\textsc{"+s2+"}",O,plain.S);
label(s3,(0,-0.4r));

在此处输入图片描述

答案2

这是 tikz 版本。我使用圆周方程,借助\foreach命令(每侧一个)将节点定位在圆的周围。

\documentclass[border=2mm]{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
  \draw[thick] (0,0) circle (4 cm);
  \foreach[count=\j]\i in
  {%
    {Misty morning, clouds in the sky},
    {Without warning, the wizard walks by},
    {Casting his shadow, weaving his spell},
    {Funny clothes, tinkling bell},
    {},
    {Never talking},
    {Just keeps walking},
    {spreading his magic},
    {},
    {Evil power disappears},
    {Demons worry when the wizard is near},
    {He turns tears into joy},
    {Everyone's happy when the wizard walks by}
  }
  {%
    \pgfmathsetmacro\y{4-0.5*\j}
    \pgfmathsetmacro\x{sqrt(16-\y*\y)+0.2}
    \node[left] at (-\x,\y) {\i};
  }
  \foreach[count=\j]\i in
  {%
    {Never talking},
    {Just keeps walking},
    {spreading his magic},
    {},
    {Sun is shining, clouds have gone by},
    {All the people give a happy sigh},
    {He has passed by, giving his sign},
    {Left all the people feeling so fine},
    {},
    {Never talking},
    {Just keeps walking},
    {spreading his magic},
  }
  {%
    \pgfmathsetmacro\y{4-0.6*\j}
    \pgfmathsetmacro\x{sqrt(16-\y*\y)+0.2}
    \node[right] at (\x,\y) {\i};
  }
  \node at (0, 1) {\large\bfseries Black Sabbath};
  \node at (0,-1) {\bfseries The Wizard};
  \node[red] at (0, 4) [above] {T. Butler, F. Iommi,};
  \node[red] at (0,-4) [below] {W. Ward, J. Osbourne};
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容