从 csv 绘制分段常数图

从 csv 绘制分段常数图

我有以下 csv 文件:

1,36
2,22
3,13
4,8
5,7
6,2
7,1
8,7
9,12
10,5
11,6
12,2
13,7
14,4
15,4
16,1
17,2
18,1
19,1
20,2
21,2
22,1
23,1
24,1
25,1
26,1
27,2
28,0
29,0
30,0
31,0
32,1
33,0
34,0
35,0
36,1

其名字是file

下面的代码

\begin{tikzpicture}
\begin{axis}[black,ylabel=Frequency, legend pos=outer north east]
  \addplot table[col sep=comma] {file.csv};
\end{axis}
\end{tikzpicture}

产生情节: 在此处输入图片描述

没问题,但我想画一个分段常数图。例如,如果我们看file,我们有

1,36

对应于 1 和 2 之间的一条常数线,其纵坐标为 36,

2,22

对应于 2 和 3 之间的一条常数线,其常数纵坐标为 22,依此类推。

答案1

(我在这里将我的评论扩展为完整的答案。)

您可以使用const plot选项\addplot

在此处输入图片描述

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}

\begin{filecontents*}{file.csv}
1,36
2,22
3,13
4,8
5,7
6,2
7,1
8,7
9,12
10,5
11,6
12,2
13,7
14,4
15,4
16,1
17,2
18,1
19,1
20,2
21,2
22,1
23,1
24,1
25,1
26,1
27,2
28,0
29,0
30,0
31,0
32,1
33,0
34,0
35,0
36,1
\end{filecontents*}

\begin{document}
\begin{tikzpicture}
\begin{axis}[ylabel=Frequency]
  \addplot+[const plot] table[col sep=comma] {file.csv};
\end{axis}
\end{tikzpicture}
\end{document}

相关内容