我正在尝试绘制聚类欧几里得图

我正在尝试绘制聚类欧几里得图

我是一名生物化学研究生,我使用基于欧几里得质心的方法对乳腺肿瘤进行了分类,其中有 437 个上调基因和 370 个下调基因(维度 = 807)。我想绘制一个简单的 2D 图(x = 0-10y = 0-10),其中包含两个质心和颜色编码的点,以在二维中演示该原理。类似于以下内容:

在此处输入图片描述

但 X 也用绿色和蓝色表示。轴不需要标记。如果能将我重定向到类似的帖子/答案,我将不胜感激。非常感谢您抽出时间!

编辑:

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}

\begin{document}
\begin{tikzpicture}
  \begin{axis}[
        width=\linewidth,
        title={K-means Predictions ($k=2$)},
        xmin=0,xmax=10,ymin=0,ymax=10,
        xlabel={Gene 1},
        ylabel={Gene 2}
        ]
       \node[text=blue,font=\sffamily\bfseries,scale=2] at (3,3) {X};
       \addplot+[y filter/.expression={y+10},only marks,mark=*,samples=50,domain=1:5] {40*rnd};
       \node[text=red,font=\sffamily\bfseries,scale=2] at (7,7){X};
       \addplot+[y filter/.expression={y+50},only marks,mark=*,mark options={fill=red},samples=50,domain=5:9] {40*rnd};
  \end{axis}
\end{tikzpicture}
\end{document}

答案1

我不知道这些点是如何分布的,因此它们是随机的。这种方法非常手动,因为必须调整域、位置X等。

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}


\begin{document}
\begin{tikzpicture}
  \begin{axis}[
        width=\linewidth,
        title={KMeans Predictions ($k=2$)},
        xmin=0,xmax=10,ymin=0,ymax=100,
        xlabel={Eruption time (minutes)},
        ylabel={Time between eruptions (minutes)}
        ]
       \node[text=blue,font=\sffamily\bfseries,scale=2] at (3,30) {X};
       \addplot+[y filter/.expression={y+10},only marks,mark=*,samples=50,domain=1:5] {40*rnd};
       \node[text=red,font=\sffamily\bfseries,scale=2] at (7,70){X};
       \addplot+[y filter/.expression={y+50},only marks,mark=*,mark options={fill=red},samples=50,domain=5:9] {40*rnd};
  \end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

你可以X通过调整坐标将其放置在任何(3,30)地方

\node[text=blue,font=\sffamily\bfseries,scale=2] at (3,30) {X};

将这里的蓝色改为你想要的任何颜色。同样,可以通过调整标记(点)的位置来改变

\addplot+[y filter/.expression={y+10},only marks,mark=*,samples=50,domain=1:5] 
{40*rnd};

在此适当调整中的domain和中的数字 (10) 。fillmark optionsy filter/.expression={y+10}

一个例子:

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}


\begin{document}
\begin{tikzpicture}
  \begin{axis}[
        width=\linewidth,
        title={KMeans Predictions ($k=2$)},
        xmin=0,xmax=10,ymin=0,ymax=100,
        xlabel={Eruption time (minutes)},
        ylabel={Time between eruptions (minutes)}
        ]
       \node[text=blue,font=\sffamily\bfseries,scale=2] at (3,70) {X};
       \addplot+[y filter/.expression={y+50},only marks,mark=*, samples=50,mark
            options={fill=olive},domain=1:5] {40*rnd};
       \node[text=red,font=\sffamily\bfseries,scale=2] at (7,50){X};
       \addplot+[y filter/.expression={y+30},only marks,mark=*,mark options={fill=green},samples=50,domain=5:9] {40*rnd};
  \end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容