我正在尝试跳过以下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}