Ich möchte folgendes Bild zeichnen:
Das Folgende ist mein Latex-Code:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning,arrows.meta,calc}
\tikzset{
arro/.style={
->,
>=latex
},
bloque/.style={
draw,
minimum height=1cm,
minimum width=0.5cm
}
}
\begin{document}
\begin{tikzpicture}[]
\node[]
(input)
{Input};
\node[below=of input,label={left:$x_{1}$}]
(inputi)
{};
\node[below=of inputi,label={left:$x_{2}$}]
(inputii)
{};
\coordinate[below=of inputii] (aux);
\node[below=of aux,label={left:$x_{3}$}]
(inputiii)
{};
\node[below=of inputiii,label={left:$+1$}]
(inputiv)
{};
\node[right=of input]
(proje)
{Projection};
\node[circle,label={above:\textsc{sum}}]
at (proje|-aux)
(projei)
{};
\node[right=of proje]
(out)
{Output};
\node[label={right:$h_{w,b}(x)$}]
at (out|-aux)
(outi)
{};
\foreach \Valor in {i,ii,iii,iv}
{
\draw[arro] (input\Valor) -- (projei);
}
\draw[arro] (projei) -- (outi);
\end{tikzpicture}
\end{document}
Ich versuche den folgenden Code hinzuzufügen:\begin{tikzpicture}[every node/.style={draw=black,circle}]
Kann mir jemand helfen? Danke!
Antwort1
Sie haben die Frage fast selbst beantwortet, aber Sie möchten nicht den Umriss jedes Knotens zeichnen, sondern nur den eines. Sie müssen also draw
nur diesem einen Knoten eine Option hinzufügen. Um die Größe zu erhöhen, können Sie minimum size=1cm
auch „eg“ hinzufügen und einen Farbnamen hinzufügen, wenn Sie die Farbe ändern möchten.
Im folgenden Code habe ich nur eine Zeile hinzugefügt, die durch den Kommentar gekennzeichnet ist.
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning,arrows.meta,calc}
\tikzset{
arro/.style={
->,
>=latex
},
bloque/.style={
draw,
minimum height=1cm,
minimum width=0.5cm
}
}
\begin{document}
\begin{tikzpicture}[]
\node[]
(input)
{Input};
\node[below=of input,label={left:$x_{1}$}]
(inputi)
{};
\node[below=of inputi,label={left:$x_{2}$}]
(inputii)
{};
\coordinate[below=of inputii] (aux);
\node[below=of aux,label={left:$x_{3}$}]
(inputiii)
{};
\node[below=of inputiii,label={left:$+1$}]
(inputiv)
{};
\node[right=of input]
(proje)
{Projection};
\node[circle,
draw,minimum size=1cm,orange, %% <-- these are added
label={above:\textsc{sum}}]
at (proje|-aux)
(projei)
{};
\node[right=of proje]
(out)
{Output};
\node[label={right:$h_{w,b}(x)$}]
at (out|-aux)
(outi)
{};
\foreach \Valor in {i,ii,iii,iv}
{
\draw[arro] (input\Valor) -- (projei);
}
\draw[arro] (projei) -- (outi);
\end{tikzpicture}
\end{document}
label
Ich würde auch vorschlagen, dass Sie nicht für die Eingabeknoten auf der linken Seite und den Ausgabeknoten verwenden . Mit ein paar anderen geringfügigen Änderungen:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning,arrows.meta,calc}
\tikzset{
arro/.style={
->,
>=latex
},
bloque/.style={
draw,
minimum height=1cm,
minimum width=0.5cm
}
}
\begin{document}
\begin{tikzpicture}[node distance=0.5cm and 1cm] % first value vertical distance, second horizontal
\node
(input)
{Input};
\node[below=of input]
(inputi)
{$x_{1}$};
\node[below=of inputi]
(inputii)
{$x_{2}$};
\coordinate[below=of inputii] (aux);
\node[below=of aux]
(inputiii)
{$x_{3}$};
\node[below=of inputiii]
(inputiv)
{$+1$};
\node[right=of input]
(proje)
{Projection};
\node[circle,
draw,minimum size=1cm,orange,
label={above:\textsc{sum}}]
at (proje|-aux)
(projei)
{};
\node[right=of proje]
(out)
{Output};
\node
at (out|-aux)
(outi)
{$h_{w,b}(x)$};
\foreach \Valor in {i,ii,iii,iv}
{
\draw[arro] (input\Valor) -- (projei);
}
\draw[arro] (projei) -- (outi);
\end{tikzpicture}
\end{document}
Antwort2
Eine etwas komplexere und prägnantere Alternative :-):
\documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary{arrows.meta, calc, chains, positioning}
\begin{document}
\begin{tikzpicture}[
node distance = 4mm and 16mm,
start chain = going below,
arro/.style = {-Latex},
bloque/.style = {text width=4ex, inner sep=1pt, align=right, on chain},
]
% inputs
\foreach \i [count=\j] in {1, 2, 3, +1}
\node[bloque] (in-\j) {$x_{\i}$};
% output
\node (out) [circle, draw=orange, minimum size=6mm,
label=\textsc{sum},
right=of $(in-2)!0.5!(in-3)$] {};
% conections
\foreach \i in {1,...,4}
\draw[arro] (in-\i) -- (out);
% output
\coordinate[right=of out] (output);
\draw[arro] (out) -- (output) node[right] {$h_{w,b}(x)$};
% layer labels
\node[above=of in-1.center] {Input};
\node[above=of in-1 -| out] {Projection};
\node[above=of in-1 -| output] {Ouput};
\end{tikzpicture}
\end{document}