Lualatex 或 Xelatex

Lualatex 或 Xelatex

我有两个问题:

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 重音。

相关内容