我想说明一个材料模型,特别是相同的加载和卸载路径,它们通过下图中跟随材料模型的箭头说明。
我想在箭头上贴上标签,具体说明loading
和unloading
。我设法用装饰图书馆来自这篇文章但我对结果并不满意。问题如下:
- 不应
Loading
正好位于箭头上,而是应在文本和箭头之间留出一点空间。 - 这种装饰导致箭头开头处出现一个箭头尖,我无法消除。
- 我想将文本沿数组长度居中,而不是使用左缩进。
- 使用装饰-library 文本看起来有点像素化。还有其他选择吗?
有人能帮助我解决上述任何问题吗?
\documentclass[a4paper,10pt]{scrreprt}
\usepackage[T1]{fontenc}
% \usepackage[utf8]{inputenc}
\usepackage[latin1]{inputenc}
\usepackage{geometry}
\geometry{a4paper,left=25mm,right=25mm, top=25mm, bottom=25mm}
\usepackage{pgfplots}
\usetikzlibrary{decorations.text}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
domain=0:2,
xmin=0, xmax=2.25,
ymin=0, ymax=4.5,
samples=100,
axis y line=center,
axis x line=middle,
]
\addplot+[mark=none] {2*0.7*(1+x)*(1-1/(1+x)^3)};
\addplot+[->,mark=none, black,
decoration={text along path,
text={Loading},
text align={left indent={0.25\dimexpr\pgfdecoratedpathlength\relax}}
},
postaction={decorate},
][domain=0.5:1.5] {2*0.7*(1+x)*(1-1/(1+x)^3)+0.5};
\addplot+[<-,mark=none, black][domain=0.5:1.5] {2*0.7*(1+x)*(1-1/(1+x)^3)-0.5};
\end{axis}
\end{tikzpicture}
\end{document}
编辑:
感谢@Harish Kumar,我解决了这些问题。不幸的是,装饰-library 产生的文本有些模糊,看起来像像素图形。有什么方法可以避免这种情况吗?
答案1
为了增加线条和文本之间的间隙,您可以使用raise=<dimen>
。要将文本对齐到中心,请使用text align=center
。我找不到为什么会出现额外的箭头(这是由于装饰,但为什么……)。要绕过那个额外的箭头,您可以绘制两次,一次使用装饰,另一次使用线条,如
\addplot[draw=none,
postaction={decorate,decoration={text along path,
text={Loading},raise=1ex,
text align={center}
}},
domain=0.5:1.5,
] {2*0.7*(1+x)*(1-1/(1+x)^3)+0.5}; %%<--- decoration alone
\addplot+[mark=none,black,
domain=0.5:1.5,->,samples=150
] {2*0.7*(1+x)*(1-1/(1+x)^3)+0.5}; %% line alone
代码:
\documentclass[a4paper,10pt]{scrreprt}
\usepackage[T1]{fontenc}
% \usepackage[utf8]{inputenc}
\usepackage[latin1]{inputenc}
\usepackage{geometry}
\geometry{a4paper,left=25mm,right=25mm, top=25mm, bottom=25mm}
\usepackage{pgfplots}
\usetikzlibrary{decorations.text}
\pgfplotsset{compat=1.12}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
domain=0:2,
xmin=0, xmax=2.25,
ymin=0, ymax=4.5,
samples=100,
axis y line=center,
axis x line=middle,
]
\addplot+[mark=none,samples=150] {2*0.7*(1+x)*(1-1/(1+x)^3)};
\addplot[draw=none,
postaction={decorate,decoration={text along path,
text={Loading},raise=1ex,
text align={center}
}},
domain=0.5:1.5,
] {2*0.7*(1+x)*(1-1/(1+x)^3)+0.5};
\addplot+[mark=none,black,
domain=0.5:1.5,->,,samples=150
] {2*0.7*(1+x)*(1-1/(1+x)^3)+0.5};
\addplot[draw=none,
postaction={decorate,decoration={text along path,
text={Unloading},raise=-2ex,
text align={center},
}},
domain=0.5:1.5
] {2*0.7*(1+x)*(1-1/(1+x)^3)-0.5};
\addplot+[<-,mark=none, black,domain=0.5:1.5,samples=150] {2*0.7*(1+x)*(1-1/(1+x)^3)-0.5};
\end{axis}
\end{tikzpicture}
\end{document}
我不想要模糊的文字
您的系统可能正在使用位图字体。