我正在尝试在 Latex/Tikz 中绘制彩色图表,需要一些帮助。我想绘制通常的 xy 平面,其中轴用黑色标记,四个象限用四种不同的颜色标记。我该怎么做?`
\documentclass[tikz,border=2mm]{standalone}
\begin{document}
\begin{tikzpicture}
%\draw[help lines, color=gray!30] (-4.9,-4.9) grid ;
\draw[->,thick] (-1.5,0)--(1.5,0) node[right]{$X$};
\draw[->, thick] (0,-1.5)--(0,1.5) node[above]{$Y$};
\end{tikzpicture}
\end{document}
如您所见,目前只有一个基本的 xy 轴。我想添加颜色,但我不知道该怎么做。
答案1
以下是使用的一种方式\filldraw
:
我确信其他人会有更好的解决方案,但仍然。\yMax
是一个值,以便您可以更改矩形颜色传播的距离(\yMax
值为 1.4 时刚好到达箭头指向)。
\documentclass[tikz,border=2mm]{standalone}
\begin{document}
\newcommand\yMax{1.5}
\begin{tikzpicture}
%\draw[help lines, color=gray!30] (-4.9,-4.9) grid ;
\filldraw[red] (0.02,0.02) rectangle (\yMax,\yMax);
\filldraw[yellow] (-0.02,-0.02) rectangle (-\yMax,-\yMax);
\filldraw[blue] (-0.02,0.02) rectangle (-\yMax,\yMax);
\filldraw[green] (0.02,-0.02) rectangle (\yMax,-\yMax);
\draw[->,thick] (-1.5,0)--(1.5,0) node[right]{$X$};
\draw[->, thick] (0,-1.5)--(0,1.5) node[above]{$Y$};
\end{tikzpicture}
\end{document}
如果要更改 X 和 Y 标签的位置,请使用yshift
,xshift
参数node
:
\documentclass[tikz,border=2mm]{standalone}
\begin{document}
\newcommand\yMax{1.5}
\begin{tikzpicture}
%\draw[help lines, color=gray!30] (-4.9,-4.9) grid ;
\filldraw[red] (0.02,0.02) rectangle (\yMax,\yMax);
\filldraw[yellow] (-0.02,-0.02) rectangle (-\yMax,-\yMax);
\filldraw[blue] (-0.02,0.02) rectangle (-\yMax,\yMax);
\filldraw[green] (0.02,-0.02) rectangle (\yMax,-\yMax);
\draw[->,thick] (-1.5,0)--(1.5,0) node[above,xshift=-0.2cm]{$X$};
\draw[->, thick] (0,-1.5)--(0,1.5) node[right,yshift=-0.2cm]{$Y$};
\end{tikzpicture}
\end{document}
答案2
一些可以开始的事情。
\documentclass[tikz,border=2mm]{standalone}
\begin{document}
\begin{tikzpicture}
%\draw[help lines, color=gray!30] (-4.9,-4.9) grid ;
\draw[->,thick] (-1.5,0)--(1.5,0) node[right]{$X$};
\draw[->, thick] (0,-1.5)--(0,1.5) node[above]{$Y$};
\begin{scope}[x=1.5 cm, y=1.5 cm, opacity=0.5]
\fill[violet] (0,0) rectangle (1,1);
\fill[blue] (0,0) rectangle (-1,1);
\fill[green] (0,0) rectangle (-1,-1);
\fill[orange] (0,0) rectangle (1,-1);
\end{scope}
\end{tikzpicture}
\end{document}
答案3
另一个方法是,循环添加所有象限\foreach
:
\documentclass[tikz,border=2mm]{standalone}
\begin{document}
\begin{tikzpicture}
\foreach[count=\ii from 0]\i in {blue,red,green,yellow}
\fill[\i!20,rotate=90*\ii] (0,0) rectangle (1.5,1.5);
\draw[->,thick] (-1.5,0) -- (1.5,0) node[right]{$X$};
\draw[->,thick] (0,-1.5) -- (0,1.5) node[above]{$Y$};
\end{tikzpicture}
\end{document}
答案4
像这样:
最小简单代码:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\fill[green] (-2,-2) rectangle (0,0);
\fill[yellow] (0,-2) rectangle (2,0);
\fill[red] (0,0) rectangle (2,2);
\fill[cyan] (-2,0) rectangle (0,2);
\draw[-latex] (-2,0)--(2.2,0) node[right] () {$x$};
\draw[-latex] (0,-2)--(0,2.2) node[right] () {$y$};
\end{tikzpicture}
\end{document}