尽管 SE 上有很多问题和答案,但我无法自定义我尝试绘制的以下图表。
我目前的努力是:
上图的代码是:
\begin{tikzpicture}
\begin{axis}[grid=both,
grid style={line width=.5pt, draw=black!30},
major grid style={line width=.5pt,draw=black!30},
clip=false,
xmin=0,xmax=65,
ymin=0,ymax=55,
enlargelimits={abs=0.5},
xtick={0,5,10,15,20,25,30,35,40,45,50,55,60},
ytick={0,10,20,30,40,50},
xticklabels={\empty},
yticklabels={,,},
extra x ticks={0,5,10,15,20,25,30,35,40,45,50,55,60},
extra x tick labels={,,,,,$25$,$30$,$35$,$40$,$45$,$50$,$55$,$60$},
extra y ticks={{0,10,20,30,40,50}},
extra y tick labels={,$10$,$20$,$30$,$40$,$50$},
minor x tick num=1,
minor y tick num=1,
axis lines=left,
axis x discontinuity=crunch
]
\addplot[latex-latex, samples=2,domain=23:58] coordinates {(23,19) (25,20) (50,35) (58.5,40) };
\end{axis}
\end{tikzpicture}
需要定制:
- 直线与 y 轴在 14 左右相交。
- 从负 x 轴以外 <25 处开始的虚线。
- 减少 x 轴 0 和 25 值之间的差距。
任何帮助,将不胜感激。
答案1
对于第三点,你需要做的就是修改xmin
。
看看你的图片,前两个点不是同一个问题吗?无论如何,一个选项可能是计算通过第一个和最后一个坐标的直线方程,然后使用它绘制一条从 x=10 到 x=23 的虚线。
注意我大大简化了您的刻度设置,并将axis lines
设置更改为middle
。
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
grid=both,
grid style={line width=.5pt, draw=black!30},
major grid style={line width=.5pt,draw=black!30},
clip=false,
xmin=20, % modified
xmax=64,
ymin=0,ymax=54,
xtick distance=5, % added
ytick distance=10, % added
minor x tick num=1,
minor y tick num=1,
axis lines=middle, % changed to middle
axis x discontinuity=crunch
]
%\addplot[latex-latex] coordinates {(23,19) (25,20) (50,35) (58.5,40) };
% equation of line calculated based on (23,19) and (58.5,40)
\addplot[latex-latex, samples at={23,58.5}] {0.59155*x + 5.394366};
\addplot[densely dashed, samples at={10,23}] {0.59155*x + 5.394366};
\end{axis}
\end{tikzpicture}
\end{document}