未对齐的子图相互阻挡

未对齐的子图相互阻挡

不过,我在两个子图中有以下饼图:

  1. 其中一个挡住了图例,如图所示。有什么解决方法吗?我尝试修改pgf-pie(感谢徐元!)但没有成功。
  2. 此外,尽管我添加了额外的命令,但两个子图并没有水平对齐{b!}
  3. 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。此命令用于键datawheel 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}

相关内容