我有一个散点图需要修改。为什么不O
使用命令排版\node (origin) at ($(O)+(225:10pt)$) {$O$};
?我希望使用与x 轴上的刻度标记标签和y 轴上的刻度标记标签O
相同的字体进行排版。我不希望通过点绘制线条,也不希望从和绘制网格线。沿着 y 轴,我希望标签打印在两行上 - 第二行上打印“Candy Bars”。10
120
10
120
\documentclass{amsart}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
\begin{axis}[grid=major, title=\textbf{George's Unsold Candy Bars\unboldmath},
ylabel = Number of Unsold Candy Bars,
xlabel = Number of Days,
xmin=0,xmax=11,ymin=0,ymax=130,
xtick={\empty},ytick={\empty},
extra x ticks={10},
extra x tick labels={10},
extra y ticks={120},
extra y tick labels={120},
yticklabel style={anchor=east},]
\addplot plot coordinates{(0,120) (1,108) (2,96) (3,84) (4,72) (5,60) (6,48) (7,36) (8,24) (9,12) (10,0)};
\coordinate (O) at (0,0);
\node (origin) at ($(O)+(225:10pt)$) {$O$};
\end{axis}
\end{tikzpicture}
\end{document}
答案1
首先,为什么要使用额外的刻度?只需使用常规刻度,结果是一样的。您也使用了\addplot plot
,但第二个图是不需要的。关于您的问题:
为什么不使用命令 \node (origin) at ($(O)+(225:10pt)$) {$O$}; 排版 O?
您需要将命令置于axis
环境之外。此外,声明一个命令的坐标是多余的,只需说 即可(0,0)
。
我希望 O 采用与 x 轴上的刻度标记标签 10 和 y 轴上的刻度标记标签 120 相同的字体排版。
在您的示例中,您写的是$O$
,但结果会有所不同,原因有二:这是在数学模式下,您写的是字母 O,而不是数字零 0。更改为0
将使用相同的字体。
我不想要通过这些点绘制线,也不想从 10 到 120 绘制网格线。沿着 y 轴,我希望标签打印在两行上 - 第二行上打印“糖果棒”。
该选项only marks
仅绘制坐标点。可以通过说 来删除网格线grid=none
。grid=major
对于 y 轴标签中的新线,只需添加\\
您希望线条断开的位置即可。
输出
代码
\documentclass{amsart}
\usepackage{tikz}
\usepackage{pgfplots}
\usetikzlibrary{calc}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
\begin{axis}[grid=none, align=center, title=\textbf{George's Unsold Candy Bars},
ylabel = Number of Unsold\\Candy Bars,
xlabel = Number of Days,
xmin=0,xmax=11,
ymin=0,ymax=130,
xtick={10},
ytick={120},
yticklabel style={anchor=east},]
\addplot[only marks] coordinates{(0,120) (1,108) (2,96) (3,84) (4,72) (5,60) (6,48) (7,36) (8,24) (9,12) (10,0)};
\end{axis}
\node (origin) at ($(0,0)+(225:10pt)$) {0};
\end{tikzpicture}
\end{document}
答案2
下面是渲染散点图的代码,它更接近我想要的效果。x 轴上 10 处的刻度线和 y 轴上 120 处的刻度线似乎被散点图中的点遮住了。更重要的是,轴的标签不见了。
\documentclass{amsart}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
\begin{tikzpicture}
\begin{axis}[grid=none, align=center, title=\textbf{George's Unsold Candy Bars},
ylabel = Number of Unsold \\ Candy Bars,
xlabel = Number of Days,
xmin=0,xmax=11,ymin=0,ymax=130,
xtick={10},ytick={120},
yticklabel style={anchor=east},
axis on top,axis lines=middle,
xlabel=$x$,ylabel=$y$,
xlabel style={at={(ticklabel* cs:1)},anchor=north west},
ylabel style={at={(ticklabel* cs:1)},anchor=south east}
]
\addplot[only marks] coordinates{(0,120) (1,108) (2,96) (3,84) (4,72) (5,60) (6,48) (7,36) (8,24) (9,12) (10,0)};
\end{axis}
\coordinate (O) at (0,0);
\node (origin) at ($(O)+(225:10pt)$) {$0$};
\end{tikzpicture}
\end{document}