同一轴上有 2 个数据的图形

同一轴上有 2 个数据的图形

我需要帮助来获得与我在图片中附加的图形类似的图形。我不明白每个值都在其轴上。

在此处输入图片描述

这些就是我工作中所秉持的价值观。

    \addplot [black,fill] coordinates {
    (hasta 5,-13)
    (5.1 a 10,-14)
    (10.1 a 25,-10)
    (25.1 a 50,-5)
    (50.1 a 100,-5)
    (100.1 a 200,-3)
    (200.1 a 500,-13)
    (500.1 a 1000,-9)
    (1000.1 a 2500,-9)
    (2500.1 a 5000,-8)
    (5000.1 a 10000,-6)
    (más de 10000,-6)};
    \addlegendentry{EAPs};
    \addplot [black!30,fill] coordinates {
    (hasta 5,0)
    (5.1 a 10,0)
    (10.1 a 25,0.1)
    (25.1 a 50,0.1)
    (50.1 a 100,0.1)
    (100.1 a 200,0.2)
    (200.1 a 500,1.9)
    (500.1 a 1000,2.5)
    (1000.1 a 2500,5.8)
    (2500.1 a 5000,11.2)
    (5000.1 a 10000,16.1)
    (más de 10000,62)};
    \addlegendentry{Superficie};

提前致谢

答案1

这里有几点需要注意:

  1. 最好给出一个平均能量损失解释你已经尝试过什么以及你遇到的问题。这将节省你和其他人的时间。

  2. 数据中的 x 坐标不是数字。因此必须将其定义为symbolic。x 坐标中的空格可以通过用“~”替换来处理。不知道这是否是最好的方法。

  3. xbar stacked可以用来实现该图。

\documentclass[border=3mm]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\pgfplotstableread{
xval        EAPs    Superficie  
hasta~5     -13 0
5.1~a~10    -14 0
10.1~a~25   -10 0.1
25.1~a~50   -5  0.1
50.1~a~100  -5  0.1
100.1~a~200 -3  0.2
200.1~a~500 -13 1.9
500.1~a~1000    -9  2.5
1000.1~a~2500   -9  5.8
2500.1~a~5000   -8  11.2
5000.1~a~10000  -6  16.1
m\`as~de~10000  -6  62
}\mytable
\begin{axis}[
xbar stacked,
stack negative=separate,
symbolic y coords={
hasta~5,
5.1~a~10,
10.1~a~25,
25.1~a~50,
50.1~a~100,
100.1~a~200,
200.1~a~500,
500.1~a~1000,
1000.1~a~2500,
2500.1~a~5000,
5000.1~a~10000,
m\`as~de~10000,
},
%
xmajorgrids,
ytick=data,
xmin=-20,
legend style={at={(0.5,1.2)},
anchor=north,legend columns=-1},
]
\addplot[black,fill] table [x index=1,y=xval] {\mytable};
\addplot[black!30,fill] table [x index=2,y=xval] {\mytable};
\legend{EAPs,Superficie};
\end{axis}
\end{tikzpicture}
\end{document}}

在此处输入图片描述

相关内容