
Я ищу пять разных цветов/стилей заливки для столбцов в диаграмме TikZ. Столбики довольно узкие. Я хочу, чтобы они были различимы при просмотре на экране или при печати в цвете, но также были различимы, если тот же файл PDF будет распечатан в черно-белом варианте.
Может ли кто-нибудь порекомендовать хороший набор определений цветов? Или какой-то другой способ заполнения полос, чтобы сделать их различимыми в обоих сценариях? Бонусом (необязательным) было бы, если бы люди с дальтонизмом также могли легко их различать.
Чтобы прояснить ситуацию, я не хочу создавать PDF-файл в оттенках серого или создавать отдельный вывод для черно-белой печати, как я видел в некоторых других ответах. Спасибо!
решение1
Решение @leandriis смешать цвет с определенной пропорцией черного или белого помогло мне найти решение, но я обнаружил, что цвета, которые оно давало, были недостаточно различимы при печати, как в цвете, так и в оттенках серого. Чтобы сделать оттенки различимыми в оттенках серого, я добавил сплошной черный и сплошной белый (с черной рамкой). Чтобы сделать их более различимыми в цвете, я использовал разные оттенки (красный, зеленый, синий). Однако мои синие цвета всегда получались темнее, чем ожидалось, при переводе в оттенки серого, поэтому в итоге я заменил синий на серый.
Вот что у меня получилось, используя исходный код @leandriis для демонстрации:
\documentclass[a4paper, 12pt]{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=0,
xmax=6,
xtick={1,2,3,4,5},
ytick={0,5},
ymin=0,
ymax=5,
every axis plot/.append style={
ybar,
bar width=10pt,
bar shift=0pt,
fill
}
]
\addplot[draw=black,fill=white]coordinates {(1,5)};
\addplot[fill=black!15!white]coordinates{(2,5)};
\addplot[fill=red!40!white]coordinates{(3,5)};
\addplot[green!60!black]coordinates{(4,5)};
\addplot[black]coordinates{(5,5)};
\end{axis}
\end{tikzpicture}
\end{document}
Не особенно красиво, но, похоже, работает! (Но любые комментарии о более эстетически приятных цветовых сочетаниях будут оценены по достоинству!)
решение2
Я бы предложил использовать базовый цвет, который затем можно смешать с разным количеством белого и черного, чтобы создать пять различных оттенков этого цвета. В следующем примере я использовал синий в качестве базового цвета, но то же самое можно сделать и с другими цветами (например, красным и зеленым, как показано на рисунке ниже).
\documentclass[a4paper, 12pt]{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=0,
xmax=6,
xtick={1,2,3,4,5},
ytick={0,5},
ymin=0,
ymax=5,
every axis plot/.append style={
ybar,
bar width=10pt,
bar shift=0pt,
fill
}
]
\addplot[blue!15!white]coordinates {(1,5)};
\addplot[blue!40!white]coordinates{(2,5)};
\addplot[blue]coordinates{(3,5)};
\addplot[blue!60!black]coordinates{(4,5)};
\addplot[blue!15!black]coordinates{(5,5)};
\end{axis}
\end{tikzpicture}
\end{document}
Те же столбчатые диаграммы, преобразованные в оттенки серого, показаны рядом с соответствующей цветной диаграммой на следующем изображении:
решение3
Цвета изninecolors
пакет может пригодиться для этой задачи.
Вот пример использования всех остальных предопределенных оттенков синего:
\documentclass[a4paper, 12pt]{article}
\usepackage{pgfplots}
\usepackage{ninecolors}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=0.5,
xmax=5.5,
xtick={1,2,3,4,5},
ytick={-1,4},
ymin=0,
ymax=3,
every axis plot/.append style={
ybar,
bar width=15pt,
bar shift=0pt,
fill
}
]
\addplot[blue1]coordinates {(1,3)};
\addplot[blue3]coordinates {(2,3)};
\addplot[blue5]coordinates {(3,3)};
\addplot[blue7]coordinates {(4,3)};
\addplot[blue9]coordinates {(5,3)};
\end{axis}
\end{tikzpicture}
\end{document}
А вот обзор всех определенных цветов redX
, brownX
, yellowX
, oliveX
, greenX
, tealX
, cyanX
, azureX
, blueX
, violetX
, (где magentaX
= число от 1 до 9) и оттенков, а также изображение того же графика при просмотре в оттенках серого:purpleX
X