Problem drawing boxes with arrows in tikZ Announcing the arrival of Valued Associate #679:...
List *all* the tuples!
Why is there no army of Iron-Mans in the MCU?
Problem drawing boxes with arrows in tikZ
Why are there no cargo aircraft with "flying wing" design?
Diagram with tikz
How to do this path/lattice with tikz
If Jon Snow became King of the Seven Kingdoms what would his regnal number be?
What causes the vertical darker bands in my photo?
Should I discuss the type of campaign with my players?
How widely used is the term Treppenwitz? Is it something that most Germans know?
How to motivate offshore teams and trust them to deliver?
Can a non-EU citizen traveling with me come with me through the EU passport line?
Output the ŋarâþ crîþ alphabet song without using (m)any letters
Is a manifold-with-boundary with given interior and non-empty boundary essentially unique?
do i need a schengen visa for a direct flight to amsterdam?
When -s is used with third person singular. What's its use in this context?
If 'B is more likely given A', then 'A is more likely given B'
Gastric acid as a weapon
Sorting numerically
Check which numbers satisfy the condition [A*B*C = A! + B! + C!]
How to recreate this effect in Photoshop?
Does surprise arrest existing movement?
The logistics of corpse disposal
How can I fade player character when he goes inside or outside of the area?
Problem drawing boxes with arrows in tikZ
Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)TikZ node placement and arrow drawingHow to define the default vertical distance between nodes?Computing the rectangle encompassing a node and a pointNumerical conditional within tikz keys?Input/Output Nodes - Specification and Description LanguageTikZ: Drawing an arc from an intersection to an intersectionHow to prevent rounded and duplicated tick labels in pgfplots with fixed precision?Drawing rectilinear curves in Tikz, aka an Etch-a-Sketch drawingLine up nested tikz enviroments or how to get rid of themHow to draw a square and its diagonals with arrows?
Could someone, whenever it's possible, post a minimal tikZ example to draw this? I also would like to put an "R" inside the upper box. This is mi code so far (I know, it's a mess):
documentclass[tikz]{standalone}
begin{document}
tikzstyle{vspecies}=[rectangle, minimum size=0.5cm,draw=black,fill=blue]
begin{tikzpicture}
node [vspecies] (I) {I} ;
node [vspecies, above left of = I] (N) {M} ;
node [vspecies, below left of = I] (K) {K} ;
draw [->,thick] (S.south east) -- node {small{$N$}} (M) ; ;
draw [->,thick] (C) -- node [below right] {small{$M$}} (M) ;
end{tikzpicture}
end{document}
tikz-pgf
New contributor
add a comment |
Could someone, whenever it's possible, post a minimal tikZ example to draw this? I also would like to put an "R" inside the upper box. This is mi code so far (I know, it's a mess):
documentclass[tikz]{standalone}
begin{document}
tikzstyle{vspecies}=[rectangle, minimum size=0.5cm,draw=black,fill=blue]
begin{tikzpicture}
node [vspecies] (I) {I} ;
node [vspecies, above left of = I] (N) {M} ;
node [vspecies, below left of = I] (K) {K} ;
draw [->,thick] (S.south east) -- node {small{$N$}} (M) ; ;
draw [->,thick] (C) -- node [below right] {small{$M$}} (M) ;
end{tikzpicture}
end{document}
tikz-pgf
New contributor
1
You can uselocal bounding box
. Btw, your code is not even compilable
– JouleV
1 hour ago
add a comment |
Could someone, whenever it's possible, post a minimal tikZ example to draw this? I also would like to put an "R" inside the upper box. This is mi code so far (I know, it's a mess):
documentclass[tikz]{standalone}
begin{document}
tikzstyle{vspecies}=[rectangle, minimum size=0.5cm,draw=black,fill=blue]
begin{tikzpicture}
node [vspecies] (I) {I} ;
node [vspecies, above left of = I] (N) {M} ;
node [vspecies, below left of = I] (K) {K} ;
draw [->,thick] (S.south east) -- node {small{$N$}} (M) ; ;
draw [->,thick] (C) -- node [below right] {small{$M$}} (M) ;
end{tikzpicture}
end{document}
tikz-pgf
New contributor
Could someone, whenever it's possible, post a minimal tikZ example to draw this? I also would like to put an "R" inside the upper box. This is mi code so far (I know, it's a mess):
documentclass[tikz]{standalone}
begin{document}
tikzstyle{vspecies}=[rectangle, minimum size=0.5cm,draw=black,fill=blue]
begin{tikzpicture}
node [vspecies] (I) {I} ;
node [vspecies, above left of = I] (N) {M} ;
node [vspecies, below left of = I] (K) {K} ;
draw [->,thick] (S.south east) -- node {small{$N$}} (M) ; ;
draw [->,thick] (C) -- node [below right] {small{$M$}} (M) ;
end{tikzpicture}
end{document}
tikz-pgf
tikz-pgf
New contributor
New contributor
New contributor
asked 1 hour ago
naveganteXnaveganteX
465
465
New contributor
New contributor
1
You can uselocal bounding box
. Btw, your code is not even compilable
– JouleV
1 hour ago
add a comment |
1
You can uselocal bounding box
. Btw, your code is not even compilable
– JouleV
1 hour ago
1
1
You can use
local bounding box
. Btw, your code is not even compilable– JouleV
1 hour ago
You can use
local bounding box
. Btw, your code is not even compilable– JouleV
1 hour ago
add a comment |
4 Answers
4
active
oldest
votes
Just for fun.
documentclass[tikz]{standalone}
usetikzlibrary{positioning}
begin{document}
tikzset{vspecies/.style={rectangle, minimum size=0.5cm,draw=blue}}
begin{tikzpicture}[>=latex]
node[draw,minimum width=1cm,minimum height=2cm,
label=left:$M$,label=above:$N$] (R){$R$};
node [vspecies,below left=1cm and 0.2cm of R,minimum height=1.2cm,
label=left:$M$,label=above:$K$] (R1) {} ;
node [vspecies,below right=1cm and 0.2cm of R,minimum width=1.2cm,
label=left:$K$,label=above:$N$] (R2) {} ;
draw [->,thick,shorten >=1mm,shorten <=1mm] (R.south west) -- (R1.north east);
draw [->,thick,shorten >=1mm,shorten <=1mm] (R.south east) -- (R2.north west);
end{tikzpicture}
end{document}
add a comment |
Something like this?
documentclass[tikz,margin=1mm]{standalone}
usetikzlibrary{positioning}
begin{document}
begin{tikzpicture}
begin{scope}[local bounding box=a]
node[minimum width=2cm,minimum height=3cm,draw] (main-a) {};
path (main-a.west) node[left] {$N$} (main-a.north) node[above] {$M$};
end{scope}
begin{scope}[local bounding box=b2]
node[minimum width=2cm,minimum height=1cm,draw,below right=of main-a] (main-b2) {};
path (main-b2.east) node[right] {$K$} (main-b2.north) node[above] {$M$};
end{scope}
begin{scope}[local bounding box=b1]
node[minimum width=1cm,minimum height=3cm,draw,below left=of main-a] (main-b1) {};
path (main-b1.west) node[left] {$N$} (main-b1.north) node[above] {$K$};
end{scope}
draw[-stealth] (main-a.south) -- (b1.north east);
draw[-stealth] (main-a.south) -- (b2.north west);
end{tikzpicture}
end{document}
Are you a kind of wizard with TeX? I must admit that I'm impressed. I read up on tikZ but it is still hard for me. So, thank you for giving me a hand with this rather tough Tex world!
– naveganteX
48 mins ago
1
@naveganteX I'm not yet a "wizard" with either TikZ or LaTeX. I'm a complete novice in TeX :D There are so many TeXperts out there, but I am not one of them, of course. I don't even know anything about TikZ 3D yet (it is in my ever to-do list)
– JouleV
46 mins ago
I happen to think that you're pretty good at both, tikz and Tex. Regarding tikZ 3d, I have been wanting to plot those 3D histograms/bar chart for so long. But at the moment, it is just an illusion!
– naveganteX
44 mins ago
add a comment |
Here is an overkill solution that defines a new pics
"shape" (see section 18.2 of the 3.1.1 tikz manual),together with some custom pgfkeys for styling it. The end result is that you can produce:
using code:
documentclass[tikz, border=5mm]{standalone}
usetikzlibrary{positioning}
begin{document}
pgfkeys{/vspecies/.is family, /vspecies,
colour/.initial = black, % rectangle colour
fill/.initial = white, % default fill
top label/.initial = M, % label on right
right label/.initial= N, % label on left
bottom label/.initial=, % label on left
left label/.initial=, % label on left
X/.initial = 5mm, % default width
Y/.initial = 5mm, % default height
shape/.initial = rectangle % default shape
}
tikzset{
pics/vspecies/.style args={#1,#2}{% node name, pgfkeys key-value pairs
code = {
pgfkeys{/vspecies, #2}
node[pgfkeysvalueof{/vspecies/shape},
minimum size=pgfkeysvalueof{/vspecies/X},
minimum height=pgfkeysvalueof{/vspecies/Y},
draw=pgfkeysvalueof{/vspecies/colour},
fill=pgfkeysvalueof{/vspecies/fill},
label=east:pgfkeysvalueof{/vspecies/left label},
label=north:pgfkeysvalueof{/vspecies/top label},
label=south:pgfkeysvalueof{/vspecies/bottom label},
label=west:pgfkeysvalueof{/vspecies/right label},
](#1) at (0,0){};
}
}
}
begin{tikzpicture}
pic at (0,0) {vspecies={A,colour=red,Y=10mm}};
pic[below left=10mm of A] {vspecies={B,top label=K,colour=blue,Y=20mm}};
pic[below right=10mm of A] {vspecies={C,fill=blue!10,X=10mm,shape=circle,left label=N,right label=}};
draw[->](A.south west)--(B.north east);
draw[->](A.south east)--(C.north west);
end{tikzpicture}
end{document}
The vspecies
pic command take two arguments: the first is the name of a (normal) tikz node label and the second argunment is a comma separated list of key-value pairs tha specify:
- the
colour
of the rectangle (default black) - the
fill
colour (default white) - the
top label
(default M) - the
left label
(default "") - the
bottom label
(default "") - the
left label
(default N) - the minimum
X
width - the minimum
Y
height - the
shape
(default rectangle)
As I said, this is overkill (and I was bored:)
add a comment |
Final version:
documentclass[tikz,margin=1mm]{standalone}
usetikzlibrary{positioning}
begin{document}
sffamily
begin{tikzpicture}
begin{scope}[local bounding box=a]
node[minimum width=2cm,line width=0.199mm,minimum height=3cm,draw=black] (main-a) {R};
path (main-a.west) node[left] {N} (main-a.north) node[above] {M};
end{scope}
begin{scope}[local bounding box=b2]
node[minimum width=2cm,line width=0.199mm,minimum height=1cm,draw=blue,below right=of main-a] (main-b2) {};
path (main-b2.east) node[right] {K} (main-b2.north) node[above] {M};
end{scope}
begin{scope}[local bounding box=b1]
node[minimum width=1cm,line width=0.199mm,minimum height=3cm,draw=blue,below left=of main-a] (main-b1) {};
path (main-b1.west) node[left] {N} (main-b1.north) node[above] {K};
end{scope}
draw[-stealth] (main-a.south) -- (b1.north east);
draw[-stealth] (main-a.south) -- (b2.north west);
end{tikzpicture}
end{document}
New contributor
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "85"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
naveganteX is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f485078%2fproblem-drawing-boxes-with-arrows-in-tikz%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
4 Answers
4
active
oldest
votes
4 Answers
4
active
oldest
votes
active
oldest
votes
active
oldest
votes
Just for fun.
documentclass[tikz]{standalone}
usetikzlibrary{positioning}
begin{document}
tikzset{vspecies/.style={rectangle, minimum size=0.5cm,draw=blue}}
begin{tikzpicture}[>=latex]
node[draw,minimum width=1cm,minimum height=2cm,
label=left:$M$,label=above:$N$] (R){$R$};
node [vspecies,below left=1cm and 0.2cm of R,minimum height=1.2cm,
label=left:$M$,label=above:$K$] (R1) {} ;
node [vspecies,below right=1cm and 0.2cm of R,minimum width=1.2cm,
label=left:$K$,label=above:$N$] (R2) {} ;
draw [->,thick,shorten >=1mm,shorten <=1mm] (R.south west) -- (R1.north east);
draw [->,thick,shorten >=1mm,shorten <=1mm] (R.south east) -- (R2.north west);
end{tikzpicture}
end{document}
add a comment |
Just for fun.
documentclass[tikz]{standalone}
usetikzlibrary{positioning}
begin{document}
tikzset{vspecies/.style={rectangle, minimum size=0.5cm,draw=blue}}
begin{tikzpicture}[>=latex]
node[draw,minimum width=1cm,minimum height=2cm,
label=left:$M$,label=above:$N$] (R){$R$};
node [vspecies,below left=1cm and 0.2cm of R,minimum height=1.2cm,
label=left:$M$,label=above:$K$] (R1) {} ;
node [vspecies,below right=1cm and 0.2cm of R,minimum width=1.2cm,
label=left:$K$,label=above:$N$] (R2) {} ;
draw [->,thick,shorten >=1mm,shorten <=1mm] (R.south west) -- (R1.north east);
draw [->,thick,shorten >=1mm,shorten <=1mm] (R.south east) -- (R2.north west);
end{tikzpicture}
end{document}
add a comment |
Just for fun.
documentclass[tikz]{standalone}
usetikzlibrary{positioning}
begin{document}
tikzset{vspecies/.style={rectangle, minimum size=0.5cm,draw=blue}}
begin{tikzpicture}[>=latex]
node[draw,minimum width=1cm,minimum height=2cm,
label=left:$M$,label=above:$N$] (R){$R$};
node [vspecies,below left=1cm and 0.2cm of R,minimum height=1.2cm,
label=left:$M$,label=above:$K$] (R1) {} ;
node [vspecies,below right=1cm and 0.2cm of R,minimum width=1.2cm,
label=left:$K$,label=above:$N$] (R2) {} ;
draw [->,thick,shorten >=1mm,shorten <=1mm] (R.south west) -- (R1.north east);
draw [->,thick,shorten >=1mm,shorten <=1mm] (R.south east) -- (R2.north west);
end{tikzpicture}
end{document}
Just for fun.
documentclass[tikz]{standalone}
usetikzlibrary{positioning}
begin{document}
tikzset{vspecies/.style={rectangle, minimum size=0.5cm,draw=blue}}
begin{tikzpicture}[>=latex]
node[draw,minimum width=1cm,minimum height=2cm,
label=left:$M$,label=above:$N$] (R){$R$};
node [vspecies,below left=1cm and 0.2cm of R,minimum height=1.2cm,
label=left:$M$,label=above:$K$] (R1) {} ;
node [vspecies,below right=1cm and 0.2cm of R,minimum width=1.2cm,
label=left:$K$,label=above:$N$] (R2) {} ;
draw [->,thick,shorten >=1mm,shorten <=1mm] (R.south west) -- (R1.north east);
draw [->,thick,shorten >=1mm,shorten <=1mm] (R.south east) -- (R2.north west);
end{tikzpicture}
end{document}
answered 45 mins ago
marmotmarmot
118k6152286
118k6152286
add a comment |
add a comment |
Something like this?
documentclass[tikz,margin=1mm]{standalone}
usetikzlibrary{positioning}
begin{document}
begin{tikzpicture}
begin{scope}[local bounding box=a]
node[minimum width=2cm,minimum height=3cm,draw] (main-a) {};
path (main-a.west) node[left] {$N$} (main-a.north) node[above] {$M$};
end{scope}
begin{scope}[local bounding box=b2]
node[minimum width=2cm,minimum height=1cm,draw,below right=of main-a] (main-b2) {};
path (main-b2.east) node[right] {$K$} (main-b2.north) node[above] {$M$};
end{scope}
begin{scope}[local bounding box=b1]
node[minimum width=1cm,minimum height=3cm,draw,below left=of main-a] (main-b1) {};
path (main-b1.west) node[left] {$N$} (main-b1.north) node[above] {$K$};
end{scope}
draw[-stealth] (main-a.south) -- (b1.north east);
draw[-stealth] (main-a.south) -- (b2.north west);
end{tikzpicture}
end{document}
Are you a kind of wizard with TeX? I must admit that I'm impressed. I read up on tikZ but it is still hard for me. So, thank you for giving me a hand with this rather tough Tex world!
– naveganteX
48 mins ago
1
@naveganteX I'm not yet a "wizard" with either TikZ or LaTeX. I'm a complete novice in TeX :D There are so many TeXperts out there, but I am not one of them, of course. I don't even know anything about TikZ 3D yet (it is in my ever to-do list)
– JouleV
46 mins ago
I happen to think that you're pretty good at both, tikz and Tex. Regarding tikZ 3d, I have been wanting to plot those 3D histograms/bar chart for so long. But at the moment, it is just an illusion!
– naveganteX
44 mins ago
add a comment |
Something like this?
documentclass[tikz,margin=1mm]{standalone}
usetikzlibrary{positioning}
begin{document}
begin{tikzpicture}
begin{scope}[local bounding box=a]
node[minimum width=2cm,minimum height=3cm,draw] (main-a) {};
path (main-a.west) node[left] {$N$} (main-a.north) node[above] {$M$};
end{scope}
begin{scope}[local bounding box=b2]
node[minimum width=2cm,minimum height=1cm,draw,below right=of main-a] (main-b2) {};
path (main-b2.east) node[right] {$K$} (main-b2.north) node[above] {$M$};
end{scope}
begin{scope}[local bounding box=b1]
node[minimum width=1cm,minimum height=3cm,draw,below left=of main-a] (main-b1) {};
path (main-b1.west) node[left] {$N$} (main-b1.north) node[above] {$K$};
end{scope}
draw[-stealth] (main-a.south) -- (b1.north east);
draw[-stealth] (main-a.south) -- (b2.north west);
end{tikzpicture}
end{document}
Are you a kind of wizard with TeX? I must admit that I'm impressed. I read up on tikZ but it is still hard for me. So, thank you for giving me a hand with this rather tough Tex world!
– naveganteX
48 mins ago
1
@naveganteX I'm not yet a "wizard" with either TikZ or LaTeX. I'm a complete novice in TeX :D There are so many TeXperts out there, but I am not one of them, of course. I don't even know anything about TikZ 3D yet (it is in my ever to-do list)
– JouleV
46 mins ago
I happen to think that you're pretty good at both, tikz and Tex. Regarding tikZ 3d, I have been wanting to plot those 3D histograms/bar chart for so long. But at the moment, it is just an illusion!
– naveganteX
44 mins ago
add a comment |
Something like this?
documentclass[tikz,margin=1mm]{standalone}
usetikzlibrary{positioning}
begin{document}
begin{tikzpicture}
begin{scope}[local bounding box=a]
node[minimum width=2cm,minimum height=3cm,draw] (main-a) {};
path (main-a.west) node[left] {$N$} (main-a.north) node[above] {$M$};
end{scope}
begin{scope}[local bounding box=b2]
node[minimum width=2cm,minimum height=1cm,draw,below right=of main-a] (main-b2) {};
path (main-b2.east) node[right] {$K$} (main-b2.north) node[above] {$M$};
end{scope}
begin{scope}[local bounding box=b1]
node[minimum width=1cm,minimum height=3cm,draw,below left=of main-a] (main-b1) {};
path (main-b1.west) node[left] {$N$} (main-b1.north) node[above] {$K$};
end{scope}
draw[-stealth] (main-a.south) -- (b1.north east);
draw[-stealth] (main-a.south) -- (b2.north west);
end{tikzpicture}
end{document}
Something like this?
documentclass[tikz,margin=1mm]{standalone}
usetikzlibrary{positioning}
begin{document}
begin{tikzpicture}
begin{scope}[local bounding box=a]
node[minimum width=2cm,minimum height=3cm,draw] (main-a) {};
path (main-a.west) node[left] {$N$} (main-a.north) node[above] {$M$};
end{scope}
begin{scope}[local bounding box=b2]
node[minimum width=2cm,minimum height=1cm,draw,below right=of main-a] (main-b2) {};
path (main-b2.east) node[right] {$K$} (main-b2.north) node[above] {$M$};
end{scope}
begin{scope}[local bounding box=b1]
node[minimum width=1cm,minimum height=3cm,draw,below left=of main-a] (main-b1) {};
path (main-b1.west) node[left] {$N$} (main-b1.north) node[above] {$K$};
end{scope}
draw[-stealth] (main-a.south) -- (b1.north east);
draw[-stealth] (main-a.south) -- (b2.north west);
end{tikzpicture}
end{document}
answered 51 mins ago
JouleVJouleV
13.9k22664
13.9k22664
Are you a kind of wizard with TeX? I must admit that I'm impressed. I read up on tikZ but it is still hard for me. So, thank you for giving me a hand with this rather tough Tex world!
– naveganteX
48 mins ago
1
@naveganteX I'm not yet a "wizard" with either TikZ or LaTeX. I'm a complete novice in TeX :D There are so many TeXperts out there, but I am not one of them, of course. I don't even know anything about TikZ 3D yet (it is in my ever to-do list)
– JouleV
46 mins ago
I happen to think that you're pretty good at both, tikz and Tex. Regarding tikZ 3d, I have been wanting to plot those 3D histograms/bar chart for so long. But at the moment, it is just an illusion!
– naveganteX
44 mins ago
add a comment |
Are you a kind of wizard with TeX? I must admit that I'm impressed. I read up on tikZ but it is still hard for me. So, thank you for giving me a hand with this rather tough Tex world!
– naveganteX
48 mins ago
1
@naveganteX I'm not yet a "wizard" with either TikZ or LaTeX. I'm a complete novice in TeX :D There are so many TeXperts out there, but I am not one of them, of course. I don't even know anything about TikZ 3D yet (it is in my ever to-do list)
– JouleV
46 mins ago
I happen to think that you're pretty good at both, tikz and Tex. Regarding tikZ 3d, I have been wanting to plot those 3D histograms/bar chart for so long. But at the moment, it is just an illusion!
– naveganteX
44 mins ago
Are you a kind of wizard with TeX? I must admit that I'm impressed. I read up on tikZ but it is still hard for me. So, thank you for giving me a hand with this rather tough Tex world!
– naveganteX
48 mins ago
Are you a kind of wizard with TeX? I must admit that I'm impressed. I read up on tikZ but it is still hard for me. So, thank you for giving me a hand with this rather tough Tex world!
– naveganteX
48 mins ago
1
1
@naveganteX I'm not yet a "wizard" with either TikZ or LaTeX. I'm a complete novice in TeX :D There are so many TeXperts out there, but I am not one of them, of course. I don't even know anything about TikZ 3D yet (it is in my ever to-do list)
– JouleV
46 mins ago
@naveganteX I'm not yet a "wizard" with either TikZ or LaTeX. I'm a complete novice in TeX :D There are so many TeXperts out there, but I am not one of them, of course. I don't even know anything about TikZ 3D yet (it is in my ever to-do list)
– JouleV
46 mins ago
I happen to think that you're pretty good at both, tikz and Tex. Regarding tikZ 3d, I have been wanting to plot those 3D histograms/bar chart for so long. But at the moment, it is just an illusion!
– naveganteX
44 mins ago
I happen to think that you're pretty good at both, tikz and Tex. Regarding tikZ 3d, I have been wanting to plot those 3D histograms/bar chart for so long. But at the moment, it is just an illusion!
– naveganteX
44 mins ago
add a comment |
Here is an overkill solution that defines a new pics
"shape" (see section 18.2 of the 3.1.1 tikz manual),together with some custom pgfkeys for styling it. The end result is that you can produce:
using code:
documentclass[tikz, border=5mm]{standalone}
usetikzlibrary{positioning}
begin{document}
pgfkeys{/vspecies/.is family, /vspecies,
colour/.initial = black, % rectangle colour
fill/.initial = white, % default fill
top label/.initial = M, % label on right
right label/.initial= N, % label on left
bottom label/.initial=, % label on left
left label/.initial=, % label on left
X/.initial = 5mm, % default width
Y/.initial = 5mm, % default height
shape/.initial = rectangle % default shape
}
tikzset{
pics/vspecies/.style args={#1,#2}{% node name, pgfkeys key-value pairs
code = {
pgfkeys{/vspecies, #2}
node[pgfkeysvalueof{/vspecies/shape},
minimum size=pgfkeysvalueof{/vspecies/X},
minimum height=pgfkeysvalueof{/vspecies/Y},
draw=pgfkeysvalueof{/vspecies/colour},
fill=pgfkeysvalueof{/vspecies/fill},
label=east:pgfkeysvalueof{/vspecies/left label},
label=north:pgfkeysvalueof{/vspecies/top label},
label=south:pgfkeysvalueof{/vspecies/bottom label},
label=west:pgfkeysvalueof{/vspecies/right label},
](#1) at (0,0){};
}
}
}
begin{tikzpicture}
pic at (0,0) {vspecies={A,colour=red,Y=10mm}};
pic[below left=10mm of A] {vspecies={B,top label=K,colour=blue,Y=20mm}};
pic[below right=10mm of A] {vspecies={C,fill=blue!10,X=10mm,shape=circle,left label=N,right label=}};
draw[->](A.south west)--(B.north east);
draw[->](A.south east)--(C.north west);
end{tikzpicture}
end{document}
The vspecies
pic command take two arguments: the first is the name of a (normal) tikz node label and the second argunment is a comma separated list of key-value pairs tha specify:
- the
colour
of the rectangle (default black) - the
fill
colour (default white) - the
top label
(default M) - the
left label
(default "") - the
bottom label
(default "") - the
left label
(default N) - the minimum
X
width - the minimum
Y
height - the
shape
(default rectangle)
As I said, this is overkill (and I was bored:)
add a comment |
Here is an overkill solution that defines a new pics
"shape" (see section 18.2 of the 3.1.1 tikz manual),together with some custom pgfkeys for styling it. The end result is that you can produce:
using code:
documentclass[tikz, border=5mm]{standalone}
usetikzlibrary{positioning}
begin{document}
pgfkeys{/vspecies/.is family, /vspecies,
colour/.initial = black, % rectangle colour
fill/.initial = white, % default fill
top label/.initial = M, % label on right
right label/.initial= N, % label on left
bottom label/.initial=, % label on left
left label/.initial=, % label on left
X/.initial = 5mm, % default width
Y/.initial = 5mm, % default height
shape/.initial = rectangle % default shape
}
tikzset{
pics/vspecies/.style args={#1,#2}{% node name, pgfkeys key-value pairs
code = {
pgfkeys{/vspecies, #2}
node[pgfkeysvalueof{/vspecies/shape},
minimum size=pgfkeysvalueof{/vspecies/X},
minimum height=pgfkeysvalueof{/vspecies/Y},
draw=pgfkeysvalueof{/vspecies/colour},
fill=pgfkeysvalueof{/vspecies/fill},
label=east:pgfkeysvalueof{/vspecies/left label},
label=north:pgfkeysvalueof{/vspecies/top label},
label=south:pgfkeysvalueof{/vspecies/bottom label},
label=west:pgfkeysvalueof{/vspecies/right label},
](#1) at (0,0){};
}
}
}
begin{tikzpicture}
pic at (0,0) {vspecies={A,colour=red,Y=10mm}};
pic[below left=10mm of A] {vspecies={B,top label=K,colour=blue,Y=20mm}};
pic[below right=10mm of A] {vspecies={C,fill=blue!10,X=10mm,shape=circle,left label=N,right label=}};
draw[->](A.south west)--(B.north east);
draw[->](A.south east)--(C.north west);
end{tikzpicture}
end{document}
The vspecies
pic command take two arguments: the first is the name of a (normal) tikz node label and the second argunment is a comma separated list of key-value pairs tha specify:
- the
colour
of the rectangle (default black) - the
fill
colour (default white) - the
top label
(default M) - the
left label
(default "") - the
bottom label
(default "") - the
left label
(default N) - the minimum
X
width - the minimum
Y
height - the
shape
(default rectangle)
As I said, this is overkill (and I was bored:)
add a comment |
Here is an overkill solution that defines a new pics
"shape" (see section 18.2 of the 3.1.1 tikz manual),together with some custom pgfkeys for styling it. The end result is that you can produce:
using code:
documentclass[tikz, border=5mm]{standalone}
usetikzlibrary{positioning}
begin{document}
pgfkeys{/vspecies/.is family, /vspecies,
colour/.initial = black, % rectangle colour
fill/.initial = white, % default fill
top label/.initial = M, % label on right
right label/.initial= N, % label on left
bottom label/.initial=, % label on left
left label/.initial=, % label on left
X/.initial = 5mm, % default width
Y/.initial = 5mm, % default height
shape/.initial = rectangle % default shape
}
tikzset{
pics/vspecies/.style args={#1,#2}{% node name, pgfkeys key-value pairs
code = {
pgfkeys{/vspecies, #2}
node[pgfkeysvalueof{/vspecies/shape},
minimum size=pgfkeysvalueof{/vspecies/X},
minimum height=pgfkeysvalueof{/vspecies/Y},
draw=pgfkeysvalueof{/vspecies/colour},
fill=pgfkeysvalueof{/vspecies/fill},
label=east:pgfkeysvalueof{/vspecies/left label},
label=north:pgfkeysvalueof{/vspecies/top label},
label=south:pgfkeysvalueof{/vspecies/bottom label},
label=west:pgfkeysvalueof{/vspecies/right label},
](#1) at (0,0){};
}
}
}
begin{tikzpicture}
pic at (0,0) {vspecies={A,colour=red,Y=10mm}};
pic[below left=10mm of A] {vspecies={B,top label=K,colour=blue,Y=20mm}};
pic[below right=10mm of A] {vspecies={C,fill=blue!10,X=10mm,shape=circle,left label=N,right label=}};
draw[->](A.south west)--(B.north east);
draw[->](A.south east)--(C.north west);
end{tikzpicture}
end{document}
The vspecies
pic command take two arguments: the first is the name of a (normal) tikz node label and the second argunment is a comma separated list of key-value pairs tha specify:
- the
colour
of the rectangle (default black) - the
fill
colour (default white) - the
top label
(default M) - the
left label
(default "") - the
bottom label
(default "") - the
left label
(default N) - the minimum
X
width - the minimum
Y
height - the
shape
(default rectangle)
As I said, this is overkill (and I was bored:)
Here is an overkill solution that defines a new pics
"shape" (see section 18.2 of the 3.1.1 tikz manual),together with some custom pgfkeys for styling it. The end result is that you can produce:
using code:
documentclass[tikz, border=5mm]{standalone}
usetikzlibrary{positioning}
begin{document}
pgfkeys{/vspecies/.is family, /vspecies,
colour/.initial = black, % rectangle colour
fill/.initial = white, % default fill
top label/.initial = M, % label on right
right label/.initial= N, % label on left
bottom label/.initial=, % label on left
left label/.initial=, % label on left
X/.initial = 5mm, % default width
Y/.initial = 5mm, % default height
shape/.initial = rectangle % default shape
}
tikzset{
pics/vspecies/.style args={#1,#2}{% node name, pgfkeys key-value pairs
code = {
pgfkeys{/vspecies, #2}
node[pgfkeysvalueof{/vspecies/shape},
minimum size=pgfkeysvalueof{/vspecies/X},
minimum height=pgfkeysvalueof{/vspecies/Y},
draw=pgfkeysvalueof{/vspecies/colour},
fill=pgfkeysvalueof{/vspecies/fill},
label=east:pgfkeysvalueof{/vspecies/left label},
label=north:pgfkeysvalueof{/vspecies/top label},
label=south:pgfkeysvalueof{/vspecies/bottom label},
label=west:pgfkeysvalueof{/vspecies/right label},
](#1) at (0,0){};
}
}
}
begin{tikzpicture}
pic at (0,0) {vspecies={A,colour=red,Y=10mm}};
pic[below left=10mm of A] {vspecies={B,top label=K,colour=blue,Y=20mm}};
pic[below right=10mm of A] {vspecies={C,fill=blue!10,X=10mm,shape=circle,left label=N,right label=}};
draw[->](A.south west)--(B.north east);
draw[->](A.south east)--(C.north west);
end{tikzpicture}
end{document}
The vspecies
pic command take two arguments: the first is the name of a (normal) tikz node label and the second argunment is a comma separated list of key-value pairs tha specify:
- the
colour
of the rectangle (default black) - the
fill
colour (default white) - the
top label
(default M) - the
left label
(default "") - the
bottom label
(default "") - the
left label
(default N) - the minimum
X
width - the minimum
Y
height - the
shape
(default rectangle)
As I said, this is overkill (and I was bored:)
answered 6 mins ago
AndrewAndrew
31k34482
31k34482
add a comment |
add a comment |
Final version:
documentclass[tikz,margin=1mm]{standalone}
usetikzlibrary{positioning}
begin{document}
sffamily
begin{tikzpicture}
begin{scope}[local bounding box=a]
node[minimum width=2cm,line width=0.199mm,minimum height=3cm,draw=black] (main-a) {R};
path (main-a.west) node[left] {N} (main-a.north) node[above] {M};
end{scope}
begin{scope}[local bounding box=b2]
node[minimum width=2cm,line width=0.199mm,minimum height=1cm,draw=blue,below right=of main-a] (main-b2) {};
path (main-b2.east) node[right] {K} (main-b2.north) node[above] {M};
end{scope}
begin{scope}[local bounding box=b1]
node[minimum width=1cm,line width=0.199mm,minimum height=3cm,draw=blue,below left=of main-a] (main-b1) {};
path (main-b1.west) node[left] {N} (main-b1.north) node[above] {K};
end{scope}
draw[-stealth] (main-a.south) -- (b1.north east);
draw[-stealth] (main-a.south) -- (b2.north west);
end{tikzpicture}
end{document}
New contributor
add a comment |
Final version:
documentclass[tikz,margin=1mm]{standalone}
usetikzlibrary{positioning}
begin{document}
sffamily
begin{tikzpicture}
begin{scope}[local bounding box=a]
node[minimum width=2cm,line width=0.199mm,minimum height=3cm,draw=black] (main-a) {R};
path (main-a.west) node[left] {N} (main-a.north) node[above] {M};
end{scope}
begin{scope}[local bounding box=b2]
node[minimum width=2cm,line width=0.199mm,minimum height=1cm,draw=blue,below right=of main-a] (main-b2) {};
path (main-b2.east) node[right] {K} (main-b2.north) node[above] {M};
end{scope}
begin{scope}[local bounding box=b1]
node[minimum width=1cm,line width=0.199mm,minimum height=3cm,draw=blue,below left=of main-a] (main-b1) {};
path (main-b1.west) node[left] {N} (main-b1.north) node[above] {K};
end{scope}
draw[-stealth] (main-a.south) -- (b1.north east);
draw[-stealth] (main-a.south) -- (b2.north west);
end{tikzpicture}
end{document}
New contributor
add a comment |
Final version:
documentclass[tikz,margin=1mm]{standalone}
usetikzlibrary{positioning}
begin{document}
sffamily
begin{tikzpicture}
begin{scope}[local bounding box=a]
node[minimum width=2cm,line width=0.199mm,minimum height=3cm,draw=black] (main-a) {R};
path (main-a.west) node[left] {N} (main-a.north) node[above] {M};
end{scope}
begin{scope}[local bounding box=b2]
node[minimum width=2cm,line width=0.199mm,minimum height=1cm,draw=blue,below right=of main-a] (main-b2) {};
path (main-b2.east) node[right] {K} (main-b2.north) node[above] {M};
end{scope}
begin{scope}[local bounding box=b1]
node[minimum width=1cm,line width=0.199mm,minimum height=3cm,draw=blue,below left=of main-a] (main-b1) {};
path (main-b1.west) node[left] {N} (main-b1.north) node[above] {K};
end{scope}
draw[-stealth] (main-a.south) -- (b1.north east);
draw[-stealth] (main-a.south) -- (b2.north west);
end{tikzpicture}
end{document}
New contributor
Final version:
documentclass[tikz,margin=1mm]{standalone}
usetikzlibrary{positioning}
begin{document}
sffamily
begin{tikzpicture}
begin{scope}[local bounding box=a]
node[minimum width=2cm,line width=0.199mm,minimum height=3cm,draw=black] (main-a) {R};
path (main-a.west) node[left] {N} (main-a.north) node[above] {M};
end{scope}
begin{scope}[local bounding box=b2]
node[minimum width=2cm,line width=0.199mm,minimum height=1cm,draw=blue,below right=of main-a] (main-b2) {};
path (main-b2.east) node[right] {K} (main-b2.north) node[above] {M};
end{scope}
begin{scope}[local bounding box=b1]
node[minimum width=1cm,line width=0.199mm,minimum height=3cm,draw=blue,below left=of main-a] (main-b1) {};
path (main-b1.west) node[left] {N} (main-b1.north) node[above] {K};
end{scope}
draw[-stealth] (main-a.south) -- (b1.north east);
draw[-stealth] (main-a.south) -- (b2.north west);
end{tikzpicture}
end{document}
New contributor
New contributor
answered 30 mins ago
naveganteXnaveganteX
465
465
New contributor
New contributor
add a comment |
add a comment |
naveganteX is a new contributor. Be nice, and check out our Code of Conduct.
naveganteX is a new contributor. Be nice, and check out our Code of Conduct.
naveganteX is a new contributor. Be nice, and check out our Code of Conduct.
naveganteX is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to TeX - LaTeX Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f485078%2fproblem-drawing-boxes-with-arrows-in-tikz%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
You can use
local bounding box
. Btw, your code is not even compilable– JouleV
1 hour ago