我如何使用 tikz 完成这个图形

我如何使用 tikz 完成这个图形

好的,我一直在尝试绘制这个图形: 在此处输入图片描述

在此处输入图片描述

我已经完成了上面的图表。我在最上面的图片中做的三个标题是剩下的。1. 矩形的外边界也应该涂成蓝色或其他颜色。2. 小圆圈应该用矩阵标记。3. 矩形应该用水平线填充

下面是我所做操作的代码:

    \documentclass{article} % say
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw  (0,5) node (yaxis) [above] {$y$}
|- (5,0) node (xaxis) [right] {$x$};
\draw (-0.5,0) -- (4,0);
\draw (0,-0.5) -- (0,4);
\definecolor{mycolor}{RGB}{178,181,255}
\filldraw[fill=mycolor] (0,0) rectangle (2,2);
\filldraw [cyan] (0,2) circle [radius=2pt];
\filldraw [cyan] (2,0) circle [radius=2pt];

\end{tikzpicture}
\end{document}

任何帮助,将不胜感激。

答案1

添加标签相当标准:只需添加node[...]{label}到点即可。

使用 tikz 库在正方形中绘制线条patterns并添加pattern=horizontal lines到绘制命令。这将为您提供以下内容:

在此处输入图片描述

以下是代码:

\documentclass{article} % say
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{patterns}
\definecolor{mycolor}{RGB}{178,181,255}

\begin{document}
  \begin{tikzpicture}
    \draw  (0,5) node (yaxis) [above] {$y$}
    |- (5,0) node (xaxis) [right] {$x$};
    \draw (-0.5,0) -- (4,0);
    \draw (0,-0.5) -- (0,4);
    \draw[preaction={fill=mycolor},
          pattern=horizontal lines,
          pattern color=cyan] (0,0) rectangle (2,2);
    \draw[cyan, thick](0,2)--(2,2)--(2,0);
    \draw[fill=cyan](0,2)circle[radius=2pt]node[left]{$\begin{bmatrix}1\\0\end{bmatrix}$};
    \draw[fill=cyan](2,0)circle[radius=2pt]node[below]{$\begin{bmatrix}0\\1\end{bmatrix}$};
  \end{tikzpicture}
\end{document}

一些评论。

  • 在绘制图案之前,我使用了preaction背景/填充颜色来填充正方形
  • pattern color=cyan用于设置水平线的颜色
  • 而不是使用\filldraw[cyan]我使用的“坐标点”,\draw[fill=cyan]因为否则节点标签也会变成青色。
  • 你的xy斧头可能有点长,但我没有修改过这些。
  • 绘制正方形后,我绘制了正方形的青色边界,以免在轴上给正方形的边界着色。

正方形内的水平线给我的感觉有点“不连贯”。如果这让您感到困扰,那么您可以用 for 循环“手工”绘制线条,而不是使用图案。这样可以得到

在此处输入图片描述

现在代码如下:

\documentclass{article} % say
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{patterns}
\definecolor{mycolor}{RGB}{178,181,255}

\begin{document}
  \begin{tikzpicture}
    \draw  (0,5) node (yaxis) [above] {$y$}
    |- (5,0) node (xaxis) [right] {$x$};
    \draw (-0.5,0) -- (4,0);
    \draw (0,-0.5) -- (0,4);
    \draw[fill=mycolor] (0,0) rectangle (2,2);
    \foreach \y in {0,...,9}{
        \draw[cyan,very thin](0,0.\y)--++(2,0);
        \draw[cyan,very thin](0,1.\y)--++(2,0);
    }
    \draw[cyan, thick](0,2)--(2,2)--(2,0);
    \draw[fill=cyan](0,2)circle[radius=2pt]node[left]{$\begin{bmatrix}1\\0\end{bmatrix}$};
    \draw[fill=cyan](2,0)circle[radius=2pt]node[below]{$\begin{bmatrix}0\\1\end{bmatrix}$};
  \end{tikzpicture}
\end{document}

这里唯一值得补充的是,因为\foreach似乎更喜欢整数,上面的循环只是一种“欺骗” tikz 绘制高度为 0、0.1、0.2、...、1.9 和 2 的线条的方式。(我实际上有点惊讶和印象深刻,tikz/pgf 解析0.\y正确1.\y!)

相关内容