不过,我在两个子图中有以下饼图:
- 其中一个挡住了图例,如图所示。有什么解决方法吗?我尝试修改
pgf-pie
(感谢徐元!)但没有成功。 - 此外,尽管我添加了额外的命令,但两个子图并没有水平对齐
{b!}
text=pin
由于饼图中没有标签空间,是否可以通过绘制一条线 ( ) 来显示最小百分比?\documentclass{scrbook} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{subcaption} \usepackage[dvipsnames]{xcolor} \usepackage{tikz} \usepackage{pgf-pie} \begin{document} \begin{figure*}[t!] \centering \begin{subfigure}[b!]{0.5\textwidth} \begin{tikzpicture} \tikzset{lines/.style={draw=white},} \pie[color={Orchid, GreenYellow, BurntOrange},sum=auto, after number=\%,every only number node/.style={text=black},text=legend,style={lines}]{60.8/Natural Gas,36.4/Petroleum,2.8/Others} \end{tikzpicture} \caption{2003} \end{subfigure}% ~ \begin{subfigure}[b!]{0.5\textwidth} \begin{tikzpicture} \tikzset{lines/.style={draw=white},} \pie[color={Orchid, GreenYellow, BurntOrange},sum=auto, after number=\%,every only number node/.style={text=black},style={lines}]{95.15/,0.67/,4.18/} \end{tikzpicture} \caption{2017} \end{subfigure} \caption{Singapore's fuel mix for electricity generation} \end{figure*} \end{document}
答案1
这轮图我写的包,可以使用。
定义一个命令\WCtest
,其输出取决于百分比是否大于 4。此命令用于键data
和wheel data
。此处,使用 来获取百分比\WCperc
。
通过使用键lines={\WCpercentage>4?0:0.5}
,如果百分比大于 4,则线的长度为 0,否则为 0.5。
在密钥中slices style
我们使用\WClistcolors
引用给定密钥的列表中的项目WClistcolors
。
图例由键决定legend
。这是一个tabular
放置在 中的\node
。行由键决定legend row
。可以使用 获得所有行的结果\WClegend
。
\documentclass[border=6pt,dvipsnames]{standalone}
\usepackage{wheelchart}
\usepackage{siunitx}
\begin{document}
\begin{tikzpicture}
\def\WCtest#1#2{%
\pgfmathparse{\WCpercentage>4?"#1":"#2"}%
\pgfmathresult%
}
\pgfkeys{
/wheelchart,
anchor ysep=20,
counterclockwise,
data=\WCtest{}{\WCperc},
lines={\WCpercentage>4?0:0.5},
perc precision=2,
pie,
slices style=\WClistcolors,
start angle=0,
WClistcolors={Orchid,GreenYellow,BurntOrange},
wheel data=\WCtest{\WCperc}{}
}
\wheelchart[
at={(-5,0)},
legend row={\tikz\fill[\WClistcolors] (0,0) rectangle (0.3,0.3); & \WCvarB},
legend={
\node[anchor=north] at (5,-5) {%
\begin{tabular}{l@{ }l}%
\WClegend%
\end{tabular}%
};
}
]{%
60.8/Natural Gas,
36.4/Petroleum,
2.8/Others%
}
\node at (-5,-4) {(a) 2003};
\wheelchart[
at={(5,0)}
]{%
95.15,
0.67,
4.18%
}
\node at (5,-4) {(b) 2017};
\end{tikzpicture}
\end{document}