如何移动用 TikZ 库图形制作的整个图形?

如何移动用 TikZ 库图形制作的整个图形?

我想将图表向左移动几厘米,因为它在右侧有点溢出。我尝试将 括\graph在 中scope,如下所示:

\begin{scope}[shift={(-10,0)}]
\graph[...]{...};
\end{scope}

输出看起来相同。这是一个可运行的示例。

编辑: 我尝试使用我提供的示例提出的解决方案\hspace{-1cm},它有效。但它在实际操作中不起作用。我怀疑原因是右侧的图片溢出。我更新了下面的玩具示例,使图表溢出右侧的页面。

\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usetikzlibrary{backgrounds}
\usetikzlibrary{positioning}
\usetikzlibrary{graphs}
\usetikzlibrary{shapes.arrows}

\title{Title}
\subtitle{Subtitle}

\date{2023}


\usetikzlibrary{arrows.meta, svg.path, fit, positioning, matrix}
\tikzset{%
  >={Latex[width=2mm,length=2mm]},
  % Specifications for style of nodes:
  base/.style = {rectangle, rounded corners=0.5mm, draw=black,
    minimum width=10mm, minimum height=4mm,
    text centered},
  process/.style = {base},
  outerbox/.style={rectangle, draw=black, dashed}
  task/.style = {base, circle}
}

\begin{document}

\begin{frame}
\frametitle{}
    
\framesubtitle{}
\hspace{-1cm}
\begin{tikzpicture} [>=stealth, black!50, text=black, very thin,
    every new ->/.style = {shorten >=1pt},
    graphs/every graph/.style = {edges=rounded corners},
    hv path/.style = {to path={-| (\tikztotarget)}},
    vh path/.style = {to path={|- (\tikztotarget)}},
    t/.style = {circle, minimum size=1mm, thin, draw=black!70, scale=0.1, fill=black!70},
    tl/.style = {circle, minimum size=1mm, thin, draw=blue!60, scale=0.1, fill=blue!60}
  ]
  \begin{scope}[shift={(10,10)}]
    \graph [grow left sep=.7mm, branch down=.3mm, simple] {
      0 / ""[t] -- 
1 / ""[t] -- 
2 / ""[t] -- 
3 / ""[t] -- 
4 / ""[t] -- 
5 / ""[t] -- 
6 / ""[t] -- 
7 / ""[t] -- 
8 / ""[t] -- 
9 / ""[t] -- 
10 / ""[t] -- 
11 / ""[t] -- 
12 / ""[t] -- 
13 / ""[t] -- 
14 / ""[t] -- 
15 / ""[t] -- 
16 / ""[t] -- 
17 / ""[t] -- 
18 / ""[t] -- 
19 / ""[t] -- 
20 / ""[t] -- 
21 / ""[t] -- 
22 / ""[t] -- 
23 / ""[t] -- 
24 / ""[t] -- 
25 / ""[t] -- 
26 / ""[t] -- 
27 / ""[t] -- 
28 / ""[t] -- 
29 / ""[t] -- 
30 / ""[t] -- 
31 / ""[t] -- 
32 / ""[t] -- 
33 / ""[t] -- 
34 / ""[t] -- 
35 / ""[t] -- 
36 / ""[t] -- 
37 / ""[t] -- 
38 / ""[t] -- 
39 / ""[t] -- 
40 / ""[t] -- 
41 / ""[t] -- 
42 / ""[t] -- 
43 / ""[t] -- 
44 / ""[t] -- 
45 / ""[t] -- 
46 / ""[t] -- 
47 / ""[t] -- 
48 / ""[t] -- 
49 / ""[t] -- 
50 / ""[t] -- 
51 / ""[t] -- 
52 / ""[t] -- 
53 / ""[t] -- 
54 / ""[t] -- 
55 / ""[t] -- 
56 / ""[t] -- 
57 / ""[t] -- 
58 / ""[t] -- 
59 / ""[t] -- 
60 / ""[t] -- 
61 / ""[t] -- 
62 / ""[t] -- 
63 / ""[t] -- 
64 / ""[t] -- 
65 / ""[t] -- 
66 / ""[t] -- 
67 / ""[t] -- 
68 / ""[t] -- 
69 / ""[t] -- 
70 / ""[t] -- 
71 / ""[t] -- 
72 / ""[t] -- 
73 / ""[t] -- 
74 / ""[t] -- 
75 / ""[t] -- 
76 / ""[t] -- 
77 / ""[t] -- 
78 / ""[t] -- 
79 / ""[t] -- 
80 / ""[t] -- 
81 / ""[t] -- 
82 / ""[t] -- 
83 / ""[t] -- 
84 / ""[t] -- 
85 / ""[t] -- 
86 / ""[t] -- 
87 / ""[t] -- 
88 / ""[t] -- 
89 / ""[t] -- 
90 / ""[t] -- 
91 / ""[t] -- 
92 / ""[t] -- 
93 / ""[t] -- 
94 / ""[t] -- 
95 / ""[t] -- 
96 / ""[t] -- 
97 / ""[t] -- 
98 / ""[t] -- 
99 / ""[t] -- 
100 / ""[t] -- 
101 / ""[t] -- 
102 / ""[t] -- 
103 / ""[t] -- 
104 / ""[t] -- 
105 / ""[t] -- 
106 / ""[t] -- 
107 / ""[t] -- 
108 / ""[t] -- 
109 / ""[t] -- 
t110 / ""[t];

    };
\end{scope}
\end{tikzpicture}
\end{frame}


\end{document}

答案1

您可以使用列暂时禁用边距:

\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usetikzlibrary{backgrounds}
\usetikzlibrary{positioning}
\usetikzlibrary{graphs}
\usetikzlibrary{shapes.arrows}

\title{Title}
\subtitle{Subtitle}

\date{2023}


\usetikzlibrary{arrows.meta, svg.path, fit, positioning, matrix}
\tikzset{%
  >={Latex[width=2mm,length=2mm]},
  % Specifications for style of nodes:
  base/.style = {rectangle, rounded corners=0.5mm, draw=black,
    minimum width=10mm, minimum height=4mm,
    text centered},
  process/.style = {base},
  outerbox/.style={rectangle, draw=black, dashed}
  task/.style = {base, circle}
}

\begin{document}

\begin{frame}
\frametitle{}
    
\framesubtitle{}

\begin{columns}
\begin{column}{\paperwidth}
\centering
\begin{tikzpicture} [>=stealth, black!50, text=black, very thin,
    every new ->/.style = {shorten >=1pt},
    graphs/every graph/.style = {edges=rounded corners},
    hv path/.style = {to path={-| (\tikztotarget)}},
    vh path/.style = {to path={|- (\tikztotarget)}},
    t/.style = {circle, minimum size=1mm, thin, draw=black!70, scale=0.1, fill=black!70},
    tl/.style = {circle, minimum size=1mm, thin, draw=blue!60, scale=0.1, fill=blue!60}
  ]
  \begin{scope}[shift={(10,10)}]
    \graph [grow left sep=.7mm, branch down=.3mm, simple] {
      0 / ""[t] -- 
1 / ""[t] -- 
2 / ""[t] -- 
3 / ""[t] -- 
4 / ""[t] -- 
5 / ""[t] -- 
6 / ""[t] -- 
7 / ""[t] -- 
8 / ""[t] -- 
9 / ""[t] -- 
10 / ""[t] -- 
11 / ""[t] -- 
12 / ""[t] -- 
13 / ""[t] -- 
14 / ""[t] -- 
15 / ""[t] -- 
16 / ""[t] -- 
17 / ""[t] -- 
18 / ""[t] -- 
19 / ""[t] -- 
20 / ""[t] -- 
21 / ""[t] -- 
22 / ""[t] -- 
23 / ""[t] -- 
24 / ""[t] -- 
25 / ""[t] -- 
26 / ""[t] -- 
27 / ""[t] -- 
28 / ""[t] -- 
29 / ""[t] -- 
30 / ""[t] -- 
31 / ""[t] -- 
32 / ""[t] -- 
33 / ""[t] -- 
34 / ""[t] -- 
35 / ""[t] -- 
36 / ""[t] -- 
37 / ""[t] -- 
38 / ""[t] -- 
39 / ""[t] -- 
40 / ""[t] -- 
41 / ""[t] -- 
42 / ""[t] -- 
43 / ""[t] -- 
44 / ""[t] -- 
45 / ""[t] -- 
46 / ""[t] -- 
47 / ""[t] -- 
48 / ""[t] -- 
49 / ""[t] -- 
50 / ""[t] -- 
51 / ""[t] -- 
52 / ""[t] -- 
53 / ""[t] -- 
54 / ""[t] -- 
55 / ""[t] -- 
56 / ""[t] -- 
57 / ""[t] -- 
58 / ""[t] -- 
59 / ""[t] -- 
60 / ""[t] -- 
61 / ""[t] -- 
62 / ""[t] -- 
63 / ""[t] -- 
64 / ""[t] -- 
65 / ""[t] -- 
66 / ""[t] -- 
67 / ""[t] -- 
68 / ""[t] -- 
69 / ""[t] -- 
70 / ""[t] -- 
71 / ""[t] -- 
72 / ""[t] -- 
73 / ""[t] -- 
74 / ""[t] -- 
75 / ""[t] -- 
76 / ""[t] -- 
77 / ""[t] -- 
78 / ""[t] -- 
79 / ""[t] -- 
80 / ""[t] -- 
81 / ""[t] -- 
82 / ""[t] -- 
83 / ""[t] -- 
84 / ""[t] -- 
85 / ""[t] -- 
86 / ""[t] -- 
87 / ""[t] -- 
88 / ""[t] -- 
89 / ""[t] -- 
90 / ""[t] -- 
91 / ""[t] -- 
92 / ""[t] -- 
93 / ""[t] -- 
94 / ""[t] -- 
95 / ""[t] -- 
96 / ""[t] -- 
97 / ""[t] -- 
98 / ""[t] -- 
99 / ""[t] -- 
100 / ""[t] -- 
101 / ""[t] -- 
102 / ""[t] -- 
103 / ""[t] -- 
104 / ""[t] -- 
105 / ""[t] -- 
106 / ""[t] -- 
107 / ""[t] -- 
108 / ""[t] -- 
109 / ""[t] -- 
t110 / ""[t];

    };
\end{scope}
\end{tikzpicture}
\end{column}
\end{columns}
\end{frame}


\end{document}

在此处输入图片描述

答案2

您的图表比 更宽\textwidth,因此它突出了框架文本区域的右边框。您可以通过两种方式解决此问题:

  • 使图变窄,例如减少图中节点之间的距离(已经很小)
  • 局部扩大框架内文本区域的宽度。

对于第二种可能性,您可以使用adjustwidthchangepage

\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usetikzlibrary{%arrows.meta, 
                %backgrounds,
                graphs,
                %fit,
                %matrix, 
                %positioning,
                %shapes.arrows, svg.path
                }
\usepackage{changepage}

\title{Title}
\subtitle{Subtitle}

\date{2023}

\begin{document}
\begin{frame}

\begin{adjustwidth}{-9mm}{-9mm}
\centering
\begin{tikzpicture}[
    %>=stealth, black!50, text=black, very thin,
    %every new ->/.style = {shorten >=1pt},
    %graphs/every graph/.style = {edges=rounded corners},
    %hv path/.style = {to path={-| (\tikztotarget)}},
    %vh path/.style = {to path={|- (\tikztotarget)}},
    t/.style  = {circle, minimum size=1mm, scale=0.1, thin, 
                 draw=black!70, fill=black!70},
    %tl/.style = {t, draw=blue!60, fill=blue!60}
                    ]
\graph [grow left sep=.7mm, branch down=.3mm, simple] 
{
0 / ""[t] -- 1 / ""[t] -- 2 / ""[t] -- 3 / ""[t] -- 4 / ""[t] --
5 / ""[t] -- 6 / ""[t] -- 7 / ""[t] -- 8 / ""[t] -- 9 / ""[t] --
10 / ""[t] -- 11 / ""[t] -- 12 / ""[t] -- 13 / ""[t] -- 14 / ""[t] --
15 / ""[t] -- 16 / ""[t] -- 17 / ""[t] -- 18 / ""[t] -- 19 / ""[t] --
20 / ""[t] -- 21 / ""[t] -- 22 / ""[t] -- 23 / ""[t] -- 24 / ""[t] --
25 / ""[t] -- 26 / ""[t] -- 27 / ""[t] -- 28 / ""[t] -- 29 / ""[t] --
30 / ""[t] -- 31 / ""[t] -- 32 / ""[t] -- 33 / ""[t] -- 34 / ""[t] --
35 / ""[t] -- 36 / ""[t] -- 37 / ""[t] -- 38 / ""[t] -- 39 / ""[t] --
40 / ""[t] -- 41 / ""[t] -- 42 / ""[t] -- 43 / ""[t] -- 44 / ""[t] --
45 / ""[t] -- 46 / ""[t] -- 47 / ""[t] -- 48 / ""[t] -- 49 / ""[t] --
50 / ""[t] -- 51 / ""[t] -- 52 / ""[t] -- 53 / ""[t] -- 54 / ""[t] --
55 / ""[t] -- 56 / ""[t] -- 57 / ""[t] -- 58 / ""[t] -- 59 / ""[t] --
60 / ""[t] -- 61 / ""[t] -- 62 / ""[t] -- 63 / ""[t] -- 64 / ""[t] --
65 / ""[t] -- 66 / ""[t] -- 67 / ""[t] -- 68 / ""[t] -- 69 / ""[t] --
70 / ""[t] -- 71 / ""[t] -- 72 / ""[t] -- 73 / ""[t] -- 74 / ""[t] --
75 / ""[t] -- 76 / ""[t] -- 77 / ""[t] -- 78 / ""[t] -- 79 / ""[t] --
80 / ""[t] -- 81 / ""[t] -- 82 / ""[t] -- 83 / ""[t] -- 84 / ""[t] --
85 / ""[t] -- 86 / ""[t] -- 87 / ""[t] -- 88 / ""[t] -- 89 / ""[t] --
90 / ""[t] -- 91 / ""[t] -- 92 / ""[t] -- 93 / ""[t] -- 94 / ""[t] --
95 / ""[t] -- 96 / ""[t] -- 97 / ""[t] -- 98 / ""[t] -- 99 / ""[t] --
100 / ""[t] -- 101 / ""[t] -- 102 / ""[t] -- 103 / ""[t] -- 104 / ""[t] --
105 / ""[t] -- 106 / ""[t] -- 107 / ""[t] -- 108 / ""[t] -- 109 / ""[t] --
t110 / ""[t];
    };
\end{tikzpicture}
\end{adjustwidth}

\end{frame}
\end{document}

无关:

  • 每个库只需加载一次就足够了
  • 对于这个特定的例子,只graphs需要库
  • 您的图表仅使用t样式定义

因此,上述 MWE 中提到的所有案例均不予评论。

在此处输入图片描述

前三个节点的详细信息:

在此处输入图片描述

相关内容