pgfplots:带跳行的符号坐标

pgfplots:带跳行的符号坐标

我正在尝试跳过以下pgfplots条形图的符号 X 坐标内的线:

\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{color}
\usepackage{amsmath, amsfonts, amssymb}
\usepackage{mdframed}
\usepackage[left=2cm,right=2cm]{geometry}
\usepackage{color}
\usepackage{tikz,pgfplots}
\usetikzlibrary{shapes,arrows}

\pgfplotsset{compat=1.10}

\definecolor{pie1}{RGB}{32,173,222} 
\definecolor{pie2}{RGB}{255,105,36} 
\definecolor{pie3}{RGB}{0,167,90}   
\definecolor{pie4}{RGB}{26,76,151}  
\definecolor{pie5}{RGB}{252,209,67} 
\definecolor{pie6}{RGB}{255,51,59}  
\definecolor{pie7}{RGB}{52,51,51}   
\definecolor{pie8}{RGB}{149,38,139} 
\definecolor{pie9}{RGB}{5,58,83}    
\definecolor{pie10}{RGB}{254,242,77} 
\definecolor{pie11}{RGB}{210,247,84}
\definecolor{pie12}{RGB}{191,216,99}

\begin{document}

\begin{figure}[htbp]
    \begin{mdframed}[backgroundcolor=pie5,linecolor=pie5]
        \centering
        \begin{tikzpicture}[font=\color{pie7}\footnotesize]
                \begin{axis}[
            x tick label style  = {color=pie7},
            y tick label style  = {color=pie8},
            x axis line style   = {color=gray},
            major x tick style  = transparent,
            y tick style        = transparent,
            y axis line style   = transparent,
            ymajorgrids         = true,
        symbolic x coords   = {Piso de mosaico/madera/otro, Techo de losa/concreto/tabique/ladrillo, Pared de tabique/ladrillo/block/piedra/cemento, Agua entubada en la vivienda, Drenaje conectado a la red publica, Disponen de energia electrica},
              height                = 6cm,
            width               = \columnwidth,
            bar width           = 6pt,
            ymin                = 0,
            ymax                = 100,
            ylabel              = \color{pie8}\normalsize Porcentaje,
            every axis y label/.style={at={(ticklabel* cs:1.05)},anchor=south},
            xtick               = data,
            nodes near coords,
            point meta          = y,
            ybar,
            legend style        = {at={(0.5,-0.2)},anchor=north,legend columns=-1,draw=white,shape=rounded rectangle}
            ]           
            \addplot[color=pie1,fill=pie1] coordinates {
                (Piso de mosaico/madera/otro,                   75)
                (Techo de losa/concreto/tabique/ladrillo,       80)
                (Pared de tabique/ladrillo/block/piedra/cemento,71)
                (Agua entubada en la vivienda,                  67)
                (Drenaje conectado a la red publica,            80)
                (Disponen de energia electrica,                 68)
            };

            \addplot[color=pie2,fill=pie2] coordinates {
                (Piso de mosaico/madera/otro,                   75)
                (Techo de losa/concreto/tabique/ladrillo,       80)
                (Pared de tabique/ladrillo/block/piedra/cemento,71)
                (Agua entubada en la vivienda,                  67)
                (Drenaje conectado a la red publica,            80)
                (Disponen de energia electrica,                 68)
            };

            \addplot[color=pie3,fill=pie3] coordinates {
                (Piso de mosaico/madera/otro,                   75)
                (Techo de losa/concreto/tabique/ladrillo,       80)
                (Pared de tabique/ladrillo/block/piedra/cemento,71)
                (Agua entubada en la vivienda,                  67)
                (Drenaje conectado a la red publica,            80)
                (Disponen de energia electrica,                 68)
            };

            \addplot[color=pie4,fill=pie4] coordinates {
                (Piso de mosaico/madera/otro,                   75)
                (Techo de losa/concreto/tabique/ladrillo,       80)
                (Pared de tabique/ladrillo/block/piedra/cemento,71)
                (Agua entubada en la vivienda,                  67)
                (Drenaje conectado a la red publica,            80)
                (Disponen de energia electrica,                 68)
            };

            \addplot[color=pie6,fill=pie6] coordinates {
                (Piso de mosaico/madera/otro,                   75)
                (Techo de losa/concreto/tabique/ladrillo,       80)
                (Pared de tabique/ladrillo/block/piedra/cemento,71)
                (Agua entubada en la vivienda,                  67)
                (Drenaje conectado a la red publica,            80)
                (Disponen de energia electrica,                 68)
            };

            \addplot[color=pie7,fill=pie7] coordinates {
                (Piso de mosaico/madera/otro,                   75)
                (Techo de losa/concreto/tabique/ladrillo,       80)
                (Pared de tabique/ladrillo/block/piedra/cemento,71)
                (Agua entubada en la vivienda,                  67)
                (Drenaje conectado a la red publica,            80)
                (Disponen de energia electrica,                 68)
            };

            \addplot[color=pie8,fill=pie8] coordinates {
                (Piso de mosaico/madera/otro,                   75)
                (Techo de losa/concreto/tabique/ladrillo,       80)
                (Pared de tabique/ladrillo/block/piedra/cemento,71)
                (Agua entubada en la vivienda,                  67)
                (Drenaje conectado a la red publica,            80)
                (Disponen de energia electrica,                 68)
            };

            \addplot[color=pie9,fill=pie9] coordinates {
                (Piso de mosaico/madera/otro,                   75)
                (Techo de losa/concreto/tabique/ladrillo,       80)
                (Pared de tabique/ladrillo/block/piedra/cemento,71)
                (Agua entubada en la vivienda,                  67)
                (Drenaje conectado a la red publica,            80)
                (Disponen de energia electrica,                 68)
            };

            \legend{1990 Ctr, 2000 Ctr, 1990 Obpdo., 2000 Obpdo., 1990 Mitras, 2000 Mitras, 1990 Ind., 2000 Ind.}
        \end{axis}
    \end{tikzpicture}
    \end{mdframed}
\caption{Tipo de Vivienda en Delegacion Centro entre los años 1995 y 2000. \emph{Fuente: PDUM 2010-2020.}}
\label{fig:topologiaViviendaCentro}
\end{figure}
\end{document}

主要原因是这些符号坐标不适合条形图下方的空间,因此它们侵犯了下一个坐标。一种解决方案是旋转它们,并在选项中添加以下行\axis

x tick label style  = {rotate=25, anchor=east, color=pie7}

但这不符合要求,因为禁止旋转文本。

有人知道如何在栏目下方创建一个自动跳过行的列吗?或者如何在定义时简单地跳过行symbolic coords

答案1

首先

x tick label style  = {color=pie7,text width=2cm,align=center},

将指定标签的宽度和对齐方式。现在,它们symbolic coords实际上只是一个内部标签(因此可能更短),但可以指定打印为标签的内容xticklabels。在这里,您可以使用\slash而不是/允许在这些点处换行。

示例输出

\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{color}
\usepackage{amsmath, amsfonts, amssymb}
\usepackage{mdframed}
\usepackage[left=2cm,right=2cm]{geometry}
\usepackage{color}
\usepackage{tikz,pgfplots}
\usetikzlibrary{shapes,arrows}

\pgfplotsset{compat=1.10}

\definecolor{pie1}{RGB}{32,173,222} 
\definecolor{pie2}{RGB}{255,105,36} 
\definecolor{pie3}{RGB}{0,167,90}   
\definecolor{pie4}{RGB}{26,76,151}  
\definecolor{pie5}{RGB}{252,209,67} 
\definecolor{pie6}{RGB}{255,51,59}  
\definecolor{pie7}{RGB}{52,51,51}   
\definecolor{pie8}{RGB}{149,38,139} 
\definecolor{pie9}{RGB}{5,58,83}    
\definecolor{pie10}{RGB}{254,242,77} 
\definecolor{pie11}{RGB}{210,247,84}
\definecolor{pie12}{RGB}{191,216,99}

\begin{document}

\begin{figure}[htbp]
    \begin{mdframed}[backgroundcolor=pie5,linecolor=pie5]
        \centering
        \begin{tikzpicture}[font=\color{pie7}\footnotesize]
                \begin{axis}[
            x tick label style  = {color=pie7,text width=2cm,align=center},
            y tick label style  = {color=pie8},
            x axis line style   = {color=gray},
            major x tick style  = transparent,
            y tick style        = transparent,
            y axis line style   = transparent,
            ymajorgrids         = true,
        symbolic x coords   = {Piso de mosaico/madera/otro, Techo
        de losa/concreto/tabique/ladrillo, Pared de tabique/ladrillo/block/piedra/cemento, Agua entubada en la vivienda, Drenaje conectado a la red publica, Disponen de energia electrica},
         xticklabels   = {Piso de mosaico\slash madera\slash otro, Techo
        de losa\slash concreto\slash tabique\slash ladrillo, Pared de tabique\slash ladrillo\slash block\slash piedra\slash cemento, Agua entubada en la vivienda, Drenaje conectado a la red publica, Disponen de energia electrica},
              height                = 6cm,
            width               = \columnwidth,
            bar width           = 6pt,
            ymin                = 0,
            ymax                = 100,
            ylabel              = \color{pie8}\normalsize Porcentaje,
            every axis y label/.style={at={(ticklabel* cs:1.05)},anchor=south},
            xtick               = data,
            nodes near coords,
            point meta          = y,
            ybar,
            legend style        = {at={(0.5,-0.5)},anchor=north,legend columns=-1,draw=white,shape=rounded rectangle}
            ]           
            \addplot[color=pie1,fill=pie1] coordinates {
                (Piso de mosaico/madera/otro,                   75)
                (Techo de losa/concreto/tabique/ladrillo,       80)
                (Pared de tabique/ladrillo/block/piedra/cemento,71)
                (Agua entubada en la vivienda,                  67)
                (Drenaje conectado a la red publica,            80)
                (Disponen de energia electrica,                 68)
            };

            \addplot[color=pie2,fill=pie2] coordinates {
                (Piso de mosaico/madera/otro,                   75)
                (Techo de losa/concreto/tabique/ladrillo,       80)
                (Pared de tabique/ladrillo/block/piedra/cemento,71)
                (Agua entubada en la vivienda,                  67)
                (Drenaje conectado a la red publica,            80)
                (Disponen de energia electrica,                 68)
            };

            \addplot[color=pie3,fill=pie3] coordinates {
                (Piso de mosaico/madera/otro,                   75)
                (Techo de losa/concreto/tabique/ladrillo,       80)
                (Pared de tabique/ladrillo/block/piedra/cemento,71)
                (Agua entubada en la vivienda,                  67)
                (Drenaje conectado a la red publica,            80)
                (Disponen de energia electrica,                 68)
            };

            \addplot[color=pie4,fill=pie4] coordinates {
                (Piso de mosaico/madera/otro,                   75)
                (Techo de losa/concreto/tabique/ladrillo,       80)
                (Pared de tabique/ladrillo/block/piedra/cemento,71)
                (Agua entubada en la vivienda,                  67)
                (Drenaje conectado a la red publica,            80)
                (Disponen de energia electrica,                 68)
            };

            \addplot[color=pie6,fill=pie6] coordinates {
                (Piso de mosaico/madera/otro,                   75)
                (Techo de losa/concreto/tabique/ladrillo,       80)
                (Pared de tabique/ladrillo/block/piedra/cemento,71)
                (Agua entubada en la vivienda,                  67)
                (Drenaje conectado a la red publica,            80)
                (Disponen de energia electrica,                 68)
            };

            \addplot[color=pie7,fill=pie7] coordinates {
                (Piso de mosaico/madera/otro,                   75)
                (Techo de losa/concreto/tabique/ladrillo,       80)
                (Pared de tabique/ladrillo/block/piedra/cemento,71)
                (Agua entubada en la vivienda,                  67)
                (Drenaje conectado a la red publica,            80)
                (Disponen de energia electrica,                 68)
            };

            \addplot[color=pie8,fill=pie8] coordinates {
                (Piso de mosaico/madera/otro,                   75)
                (Techo de losa/concreto/tabique/ladrillo,       80)
                (Pared de tabique/ladrillo/block/piedra/cemento,71)
                (Agua entubada en la vivienda,                  67)
                (Drenaje conectado a la red publica,            80)
                (Disponen de energia electrica,                 68)
            };

            \addplot[color=pie9,fill=pie9] coordinates {
                (Piso de mosaico/madera/otro,                   75)
                (Techo de losa/concreto/tabique/ladrillo,       80)
                (Pared de tabique/ladrillo/block/piedra/cemento,71)
                (Agua entubada en la vivienda,                  67)
                (Drenaje conectado a la red publica,            80)
                (Disponen de energia electrica,                 68)
            };

            \legend{1990 Ctr, 2000 Ctr, 1990 Obpdo., 2000 Obpdo., 1990 Mitras, 2000 Mitras, 1990 Ind., 2000 Ind.}
        \end{axis}
    \end{tikzpicture}
    \end{mdframed}
\caption{Tipo de Vivienda en Delegacion Centro entre los años 1995 y 2000. \emph{Fuente: PDUM 2010-2020.}}
\label{fig:topologiaViviendaCentro}
\end{figure}
\end{document}

相关内容