我正在尝试将下面的图片转换为 Tikz:
我尝试使用以下代码作为起点:
\begin{center}
\begin{tikzpicture}
\begin{axis}[
xticklabels={,,},
yticklabels={,,},
xlabel={Volatility Protection},
ylabel={Impact on Client Investment Performance}]
\end{axis}
\tikz \draw[fill=red!20] (12,5) ellipse (40pt and 10pt);
\end{tikzpicture}
\end{center}
但是,我并没有真正接近,而且我的代码似乎存在问题,调整(12,5)并不能按照我期望的方式移动椭圆。
有人能告诉我如何在 Tikz 中制作此图形吗?即使你可以得到轴和一个椭圆,我也可以从那里开始并填充其余部分,我主要只是在寻找一个好的模板来开始。谢谢!!
答案1
有多种策略可以绘制这样的图形。一种方法是绘制椭圆并随后添加文本。这种方法的缺点是,如果您大量更改文本,则需要更改大量坐标。因此,这里positioning
用于将椭圆相对放置。这需要使用椭圆节点,因此需要使用一些小技巧来移动节点内的文本。哪种方法更好取决于情况和个人喜好。
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{shapes.geometric,positioning}
\begin{document}
\begin{tikzpicture}[>=stealth,thick,font=\sffamily,
elli/.style args={#1 and #2}{ellipse,minimum width=#1cm,
minimum height=#2cm,align=center}]
\begin{scope}[local bounding box=ells,fill opacity=0.4,text opacity=1]
\node[elli=3.5 and 2,fill=blue] (E1) {independent solution};
\node[elli=3 and 2.8,fill=cyan,above right=0em and -1em of E1.east] (E2) {Capped violity funds};
\node[elli=2.8 and 2.8,fill=cyan!80,above=-3em of E2] (E3) {Asset-transfer\\
programs\\[3em]};
\node[elli=3 and 3.4,fill=gray,right=-2em of E3.10,inner sep=-0.5em] (E4){
\quad\begin{tabular}{c}Target viotatility\\
funds
\end{tabular}};
\node[elli=3 and 4,fill=gray!70,above=-1em of E4.north] (E5)
{Capital preservation\\ funds\\[2em]};
\end{scope}
\draw[gray,thin] ([shift={(-1ex,1ex)}]ells.north west) coordinate (TL) rectangle
([shift={(1ex,-1ex)}]ells.south east)coordinate (BR) -- (TL);
%
\draw[thick,<->] ([yshift=-2em]BR-|TL) node[below right]{Low}
-- node[above] {Economic \dots} ([yshift=-2em]BR) node[below left]{High};
%
\draw[thick,<->] ([xshift=-2em]TL) node[below left,rotate=90]{Significant
impact} -- node[above,rotate=90] {Economic \dots}
([xshift=-2em]TL|-BR) node[below right,rotate=90]{Minimal impact};
\end{tikzpicture}
\end{document}