-2

I'd highly appreciate if someone could give me hand to draw this diagram in TikZ.

enter image description here

jub0bs
  • 58,916
MYaseen208
  • 8,587
  • 14
    Generally, questions of the type "Can someone do this for me?" are strongly discouraged. You should make an effort to show what you've done so far to solve the problem, show the code you have so far, and specify where exactly you're stuck. As a pointer to where to start, you could take a look at http://tex.stackexchange.com/questions/28363/how-to-pick-a-plane-inside-a-cube-in-pst-3dplot/28486#28486 – Jake Sep 23 '11 at 06:44
  • AB and BC seem odd since we cannot really distinguish where the blue and red surfaces cross. – pluton Sep 23 '11 at 13:37
  • You might want to have a look at Sketch - a program to generate 3D drawings using PSTricks or TPGF/TikZ. – diabonas Sep 23 '11 at 13:39
  • From the link I mentioned, you should easily be able to to A, B, and C just by choosing the colors and opacity of each plane. Enable the debug options to see where each point is and then you can produce the last three by connecting the appropriate points. To finish it off, add a line where the planes intersect as mentioned by pluton. If you make an attempt and get stuck please edit your question and we can help. – Peter Grill Sep 23 '11 at 16:54

2 Answers2

8

I'm conscious this question is two years old, but I'm bored. Here is my take on this:

enter image description here

\documentclass{article}

\usepackage{tikz}
\usepackage{subcaption}
\usepackage{caption}
\captionsetup[figure]{labelfont=bf}

\newcommand\drawplane[2]
{%
    \draw
    [
        thick,
        opacity=.6,
        draw=#2,
        fill=#2!60,
    ] #1 -- cycle;%
}

\newcommand\drawonecase[4]
{
    \begin{tikzpicture}[scale=2]

        \tikzset
        {
            edgevis/.style={black},
            edgehid/.style={dashed,black},
        }

        \def\vertexradius{.7pt}

        \coordinate (OOO) at (0,0);
        \coordinate (OOI) at (xyz cs:z=1);
        \coordinate (OIO) at (xyz cs:y=1);
        \coordinate (OII) at (xyz cs:y=1,z=1);
        \coordinate (IOO) at (xyz cs:x=1);
        \coordinate (IOI) at (xyz cs:x=1,z=1);
        \coordinate (IIO) at (xyz cs:x=1,y=1);
        \coordinate (III) at (xyz cs:x=1,y=1,z=1);

        \drawplane{#1}{#2}
        \drawplane{#3}{#4}

        \draw[edgevis] (OOI) -- (OII) -- (OIO) -- (IIO) -- (IOO) -- (IOI) -- cycle;
        \draw[edgevis] (III) -- (IIO);
        \draw[edgevis] (III) -- (IOI);
        \draw[edgevis] (III) -- (OII);
        \draw[edgehid] (OOO) -- (OOI);
        \draw[edgehid] (OOO) -- (OIO);
        \draw[edgehid] (OOO) -- (IOO);

        \draw (OOO) circle (\vertexradius);
        \draw (OOI) circle (\vertexradius);
        \draw (OIO) circle (\vertexradius);
        \draw (OII) circle (\vertexradius);
        \draw (IOO) circle (\vertexradius);
        \draw (IOI) circle (\vertexradius);
        \draw (IIO) circle (\vertexradius);
        \draw (III) circle (\vertexradius);

    \end{tikzpicture}
}

\begin{document}
\begin{figure}
    \begin{subfigure}[b]{\textwidth}
        \begin{tabular}{ccc}
            \drawonecase
                {(OOO) -- (OOI) -- (OII) -- (OIO)}{red}
                {(IOO) -- (IOI) -- (III) -- (IIO)}{blue}
            &
            \drawonecase
                {(OOO) -- (IOO) -- (IIO) -- (OIO)}{blue}
                {(OOI) -- (IOI) -- (III) -- (OII)}{red}
            &
            \drawonecase
                {(OOO) -- (IOO) -- (IOI) -- (OOI)}{red}
                {(OIO) -- (IIO) -- (III) -- (OII)}{blue}
            \\
            $A$ & $B$ & $C$
        \end{tabular}
        \caption{Main effects}
    \end{subfigure}
    \par
    \vspace{1em}
    \begin{subfigure}[b]{\textwidth}
        \begin{tabular}{ccc}
            \drawonecase
                {(OOI) -- (OII) -- (IIO) -- (IOO)}{blue}
                {(OOO) -- (OIO) -- (III) -- (IOI)}{red}
            &
            \drawonecase
                {(OII) -- (OIO) -- (IOO) -- (IOI)}{red}
                {(OOI) -- (OOO) -- (IIO) -- (III)}{blue}
            &
            \drawonecase
                {(OOI) -- (IOI) -- (IIO) -- (OIO)}{blue}
                {(OII) -- (III) -- (IOO) -- (OOO)}{red}
            \\
            $AB$ & $AC$ & $BC$
        \end{tabular}
        \caption{Two-factor interactions}
    \end{subfigure}
    \caption{%
        Geometric presentation of contrast.
        In each case, high levels are highlighted in blue, low levels in red.%
    }
\end{figure}

\end{document}
David Carlisle
  • 757,742
jub0bs
  • 58,916
  • Thanks @Jubobs for your nice answer. I solved this problem lot time ago (See here, and here but forgot to mention here. Anyway thanks for your effort and for nice answer. – MYaseen208 Oct 12 '13 at 11:11
7

A few pointers:

  • You can use XYZ coordinates (origin would be the lower left of the back face), see PGF manual, page 124
  • Use the dashed option for dashed lines, see page 158
  • to see lines and surfaces behind the colored surfaces, use the draw opacity option, see page 234
  • for the small circles at the corners, use circular arrow tips, see page 257

If special problems arise, please update your answer, and please then include what you've done so far.

Tom Bombadil
  • 40,123