我有两个问题:
x 轴上的箭头。
左侧 y 轴的高度与右侧 y 轴的高度不匹配。我希望左侧轴的 ymin=0 ymax=25 以及刻度线位于右侧刻度线的前面。
我尝试了 ymin、ymax 和刻度之间的最大空间,但没有什么效果。
\begin{tikzpicture}
% let both axes use the same layers
\pgfplotsset{set layers}
\begin{axis}[%
scale only axis=true,
ybar, bar width=10pt,
ymin=0,ymax=100,
enlargelimits=0.05,
%axis x line=box,
axis y line=right,
symbolic x coords=%
{Janvier,Février,Mars,Avril,Mai,Juin,Juillet,
Août,Septembre,Octobre,Novembre,Décembre},
xtick=data,
x tick label style={rotate=60,anchor=east},
legend style={at={(0.1,0.85)}, anchor=south west,legend columns=-1},
%nodes near coords,
%nodes near coords align={vertical},
]
\addplot[style={draw=yellow!80!black,fill=yellow!40!white}] coordinates {%
(Janvier,85)
(Février,75)
(Mars,60)
(Avril,59)
(Mai,62)
(Juin,42)
(Juillet,48)
(Août,41)
(Septembre,69)
(Octobre,80)
(Novembre,81)
(Décembre,91)
} ;
\legend{Précipitations} ;
\end{axis}
%\end{tikzpicture}
%\begin{tikzpicture}
\begin{axis}[
scale only axis = true,
ymin=0,
max space between ticks=28,
axis y line=left,
enlargelimits=0.05,
axis x line=none,
symbolic x coords=%
{Janvier,Février,Mars,Avril,Mai,Juin,Juillet,
Août,Septembre,Octobre,Novembre,Décembre},
legend style={at={(0.1,.93)}, anchor=south west,legend columns=-1},
]
\addplot[red,mark=*] coordinates {%
(Janvier,9)
(Février,10)
(Mars,13)
(Avril,15)
(Mai,18)
(Juin,22)
(Juillet,24.5)
(Août,25)
(Septembre,22.5)
(Octobre,18)
(Novembre,13)
(Décembre,10.5)
} ;
\addplot[blue,mark=*] coordinates {%
(Janvier,3)
(Février,3.5)
(Mars,4.5)
(Avril,6.5)
(Mai,9.5)
(Juin,12)
(Juillet,14)
(Août,14)
(Septembre,12)
(Octobre,9)
(Novembre,6)
(Décembre,4)
} ;
\legend{Max,Min} ;
\end{axis}
\end{tikzpicture}
答案1
事实证明,这是第一个子图中选项顺序的问题。 需要axis y line=right
位于enlargelimits
选项之前,否则该选项将被忽略:
输入编码问题因您的引擎而异,因此存在下面两组不同的代码。
Lualatex 或 Xelatex
最简单,因为我们可以utf8
在任何地方使用。
% lualatex or xelatex
\documentclass{article}
\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage{french}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
\begin{document}
\begin{tikzpicture}
% let both axes use the same layers
\pgfplotsset{set layers}
\begin{axis}[%
scale only axis=true,
ybar, bar width=10pt,
ymin=0,ymax=100,
axis y line=right,
axis x line*=bottom,
enlargelimits=0.05,
symbolic x coords={Janvier,Février,Mars,Avril,Mai,Juin,Juillet,
Août,Septembre,Octobre,Novembre,Décembre},
xtick=data,
x tick label style={rotate=60,anchor=east},
legend style={at={(0.1,0.85)}, anchor=south west,legend columns=-1},
]
\addplot[style={draw=yellow!80!black,fill=yellow!40!white}] coordinates {%
(Janvier,85)
(Février,75)
(Mars,60)
(Avril,59)
(Mai,62)
(Juin,42)
(Juillet,48)
(Août,41)
(Septembre,69)
(Octobre,80)
(Novembre,81)
(Décembre,91)
} ;
\legend{Précipitations} ;
\end{axis}
\begin{axis}[
scale only axis = true,
ymin=0,
max space between ticks=28,
axis y line=left,
enlargelimits=0.05,
axis x line=none,
symbolic x coords={Janvier,Février,Mars,Avril,Mai,Juin,Juillet,Août,Septembre,Octobre,Novembre,Décembre},
legend style={at={(0.1,.93)}, anchor=south west,legend columns=-1},
]
\addplot[red,mark=*] coordinates {%
(Janvier,9)
(Février,10)
(Mars,13)
(Avril,15)
(Mai,18)
(Juin,22)
(Juillet,24.5)
(Août,25)
(Septembre,22.5)
(Octobre,18)
(Novembre,13)
(Décembre,10.5)
} ;
\addplot[blue,mark=*] coordinates {%
(Janvier,3)
(Février,3.5)
(Mars,4.5)
(Avril,6.5)
(Mai,9.5)
(Juin,12)
(Juillet,14)
(Août,14)
(Septembre,12)
(Octobre,9)
(Novembre,6)
(Décembre,4)
} ;
\legend{Max,Min} ;
\end{axis}
\end{tikzpicture}
\end{document}
pdflatex
在符号名称中使用重音符号的问题。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
\begin{document}
\begin{tikzpicture}
% let both axes use the same layers
\pgfplotsset{set layers}
\begin{axis}[%
scale only axis=true,
ybar, bar width=10pt,
ymin=0,ymax=100,
axis y line=right,
axis x line*=bottom,
enlargelimits=0.05,
symbolic x coords={Jan,Fev,Mar,Avr,Mai,Jun,Jui,Aou,Sep,Oct,Nov,Dec},
xtick=data,
xticklabels={Janvier,F\'evrier,Mars,Avril,Mai,Juin,Juillet,
Ao\^ut,Septembre,Octobre,Novembre,D\'ecembre},
x tick label style={rotate=60,anchor=east},
legend style={at={(0.1,0.85)}, anchor=south west,legend columns=-1},
]
\addplot[style={draw=yellow!80!black,fill=yellow!40!white}] coordinates {%
(Jan,85)
(Fev,75)
(Mar,60)
(Avr,59)
(Mai,62)
(Jun,42)
(Jui,48)
(Aou,41)
(Sep,69)
(Oct,80)
(Nov,81)
(Dec,91)
} ;
\legend{Pr\'ecipitations} ;
\end{axis}
\begin{axis}[
scale only axis = true,
ymin=0,
max space between ticks=28,
axis y line=left,
enlargelimits=0.05,
axis x line=none,
symbolic x coords={Jan,Fev,Mar,Avr,Mai,Jun,Jui,Aou,Sep,Oct,Nov,Dec},
legend style={at={(0.1,.93)}, anchor=south west,legend columns=-1},
]
\addplot[red,mark=*] coordinates {%
(Jan,9)
(Fev,10)
(Mar,13)
(Avr,15)
(Mai,18)
(Jun,22)
(Jui,24.5)
(Aou,25)
(Sep,22.5)
(Oct,18)
(Nov,13)
(Dec,10.5)
} ;
\addplot[blue,mark=*] coordinates {%
(Jan,3)
(Fev,3.5)
(Mar,4.5)
(Avr,6.5)
(Mai,9.5)
(Jun,12)
(Jui,14)
(Aou,14)
(Sep,12)
(Oct,9)
(Nov,6)
(Dec,4)
} ;
\legend{Max,Min} ;
\end{axis}
\end{tikzpicture}
\end{document}
请注意,如果您根本不使用符号名称,而只是设置刻度标签,那么您可以utf8
在这些刻度标签和图例中使用它。当符号名称也存在时,似乎有一些错误会停止此工作,并且必须产生普通的 TeX 重音。