我正在尝试使用 pgfplots 绘制这种图形,这是我的代码:
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xlabel=Year,
ylabel=No. of Ques]
\addplot[smooth,mark=*,blue] plot coordinates {
(CD,0)
(CN,0)
(CO,0)
(DA,0)
(DBMS,0)
(DLD,0)
(DM,0)
(EM,1)
(GEN,0)
(OS,0)
(PROG,1)
(TOC,0)
};
\addlegendentry{
2015}
\end{axis}
\end{tikzpicture}
\end{document}
答案1
您只需在使用它们之前定义您的坐标。
代替
\begin{axis}[
xlabel=Year,
ylabel=No. of Ques]
和
\begin{axis}[
xlabel=Year,
ylabel=No. of Ques,
symbolic x coords={CD, CN, CO, DA, DBMS, DLD, DM, EM, GEN, OS, PROG, TOC}]
要得到
要查看所有 x 坐标,它们必须有足够的空间来容纳。您必须扩大绘图的宽度。此问题的解决方案是作为以下问题的答案提供的如何增加/调整 x 轴的宽度以适合 pgfplots 中的所有点?
现在更换
\begin{axis}[
xlabel=Year,
ylabel=No. of Ques,
symbolic x coords={CD, CN, CO, DA, DBMS, DLD, DM, EM, GEN, OS, PROG, TOC}]
和
\begin{axis}[
xlabel=Year,
ylabel=No. of Ques,
symbolic x coords={CD, CN, CO, DA, DBMS, DLD, DM, EM, GEN, OS, PROG, TOC},
enlarge x limits=-1,
width=13cm] % ADJUST WIDTH TO YOUR LIKING
要得到
这是经过上述修改的代码和文档类声明(不存在),以防您遇到问题:
\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xlabel=Year,
ylabel=No. of Ques,
symbolic x coords={CD, CN, CO, DA, DBMS, DLD, DM, EM, GEN, OS, PROG, TOC},
enlarge x limits=-1,
width=13cm] % ADJUST WIDTH TO YOUR LIKING
\addplot[smooth,mark=*,blue] plot coordinates {
(CD,0)
(CN,0)
(CO,0)
(DA,0)
(DBMS,0)
(DLD,0)
(DM,0)
(EM,1)
(GEN,0)
(OS,0)
(PROG,1)
(TOC,0)
};
\addlegendentry{
2015}
\end{axis}
\end{tikzpicture}
\end{document}
如果您想要与问题图片中显示的精确图表,则必须让 pgfplots 知道您需要条形图。您还必须提供与图片中显示的相同的值。