维恩图内/外的长文本

维恩图内/外的长文本

我需要绘制一个维恩图,其中扇区内有长文本。我的尝试借鉴了一个例子:

\documentclass{article}
\usepackage{graphicx}
\usepackage{tikz}
\usetikzlibrary{shapes,backgrounds}

\begin{document}

\pagestyle{empty}
\def\firstcircle{(0,0) circle (2.5cm)}
\def\secondcircle{(60:2.5cm) circle (2.5cm)}
\def\thirdcircle{(0:2.5cm) circle (2.5cm)}
\begin{tikzpicture}
    \begin{scope}[shift={(3cm,-1.5cm)}, fill opacity=0.25]
        \fill[red] \firstcircle;
        \fill[green] \secondcircle;
        \fill[blue] \thirdcircle;
        \draw \firstcircle node[below] {$Word_1$};
        \draw \secondcircle node[above] {$Word_2$};
        \draw \thirdcircle node[below] {$Word_3$};
    \end{scope}
\end{tikzpicture}

\end{document}

执行结果为:

在此处输入图片描述

我希望单词(Word_1、Word_2、Word_3)可以沿着圆圈的边框放置。但是如果没有足够的空间放置文本怎么办(对于 Word_12、Word_13、Word_23 的情况,尤其是 Word_123)。文本大小无法更改。例如,可以将签名移到小扇区之外。

问题。是否有用于文本放置自动化的工具?

答案1

您可以将较长的文本放在外面,如下所示: 在此处输入图片描述

我对上述代码中的大部分问题进行了轻微的修改:

  • 这样一来,文字就几乎看不见了
  • 范围说明后的转变似乎没有什么用
  • (0,0)是“Word_1”的位置……最好位于所有交叉点的正中心
  • 只需将一些带有长文本的节点放在外面即可
  • 画一条线来表示你指的是哪个字段
  • 对于发展来说,阶级standalone是更好的
%\documentclass{article}
\documentclass[10pt,border=3mm,tikz]{standalone}
%\usepackage{graphicx}
%\usepackage{tikz}
\usetikzlibrary{shapes,backgrounds}
\usetikzlibrary{arrows.meta}

\begin{document}

%\pagestyle{empty}
\def\firstcircle{(0,0) circle (2.5cm)}
\def\secondcircle{(60:2.5cm) circle (2.5cm)}
\def\thirdcircle{(0:2.5cm) circle (2.5cm)}
\begin{tikzpicture}
    \begin{scope}[fill opacity=0.25]
        \fill[red] \firstcircle;
        \fill[green] \secondcircle;
        \fill[blue] \thirdcircle;
%        \draw \firstcircle node[below] {$Word_1$};
        \draw \secondcircle node[above] {$Word_2$};
%        \draw \thirdcircle node[below] {$Word_3$};
    \end{scope}
    
    % ~~~ making text readable again ~~~~~~~~~~~~
    \draw \firstcircle node[shift=(220:13mm)] {$Word_1$ !};
%   \draw \secondcircle node[above] {$Word_2$};
    \draw \thirdcircle node[below] {$Word_3$};

    % ~~~ putting some label outside ~~~~~
    \node[align=left] (A) at (-4,3) 
        {Here's some longer text\\with some breaks};
    
    % ~~~ connector, with some options, e.g. using polar coordinates for anchor
    \draw[dashed,blue,-{Circle[]}] (A.220) -- (0,1.5);

\end{tikzpicture}

\end{document}

相关内容