Adjusting bounding box of PlotLegends in TimelinePlotHow to raise the LegendLayout “Row” sizePrevent...
declaring a variable twice in IIFE
The use of multiple foreign keys on same column in SQL Server
Can I interfere when another PC is about to be attacked?
What is the meaning of "of trouble" in the following sentence?
New order #4: World
Email Account under attack (really) - anything I can do?
Can a German sentence have two subjects?
What do you call something that goes against the spirit of the law, but is legal when interpreting the law to the letter?
Can town administrative "code" overule state laws like those forbidding trespassing?
What Brexit solution does the DUP want?
Prevent a directory in /tmp from being deleted
Infinite past with a beginning?
Extreme, but not acceptable situation and I can't start the work tomorrow morning
What is GPS' 19 year rollover and does it present a cybersecurity issue?
How can I fix this gap between bookcases I made?
Could a US political party gain complete control over the government by removing checks & balances?
Why doesn't Newton's third law mean a person bounces back to where they started when they hit the ground?
Circuitry of TV splitters
cryptic clue: mammal sounds like relative consumer (8)
Why did the Germans forbid the possession of pet pigeons in Rostov-on-Don in 1941?
Can an x86 CPU running in real mode be considered to be basically an 8086 CPU?
Is Social Media Science Fiction?
How to determine if window is maximised or minimised from bash script
least quadratic residue under GRH: an EXPLICIT bound
Adjusting bounding box of PlotLegends in TimelinePlot
How to raise the LegendLayout “Row” sizePrevent manipulations in PlotLegendsLabelStyle doesn't affect PlotLegendsUsing PlotLegendsPlotLegends questionPlotLegends is obsolete in v10?inset legend from top right corner / find size of swatchlegend bounding boxPlotLegends in 4D plotPlotLegends and ColorConvert interact badlyPlotLegends for six curvesSpacings of rows in PlotLegends
$begingroup$
I'd like to align the elements of the PlotLegend
in a single horizontal row beneath the TimelinePlot
, as there is plenty of room for that (especially when I adjust the Size
to be large). Instead the internal algorithms pack the PlotLegends
into three rows in this case.
How to fix that?
TimelinePlot[
{
<|{Entity["Person", "LeonardoDaVinci::47w36"] ->
Interval[{"1452", "1521"}]
}|>,
<|{Entity["Person", "CamilleCorot::vx57d"] ->
Interval[{"1796", "1875"}]
}|>,
<|{
"Piet Mondrian" -> Interval[{"1872", "1944"}]
}|>,
<|{"Thomas Gainsborough" -> Interval[{"1727", "1788"}]
}|>,
<|{Entity["Person", "JanDavidszDeHeem::2gt75"] ->
Interval[{"1606", "1684"}]
}|>,
<|{"Pablo Picasso" -> Interval[{"1881", "1973"}]
}|>,
<|{"Hokusai" -> Interval[{"1760", "1849"}]
}|>
}
,
PlotStyle -> {Red, Orange, Darker[Yellow], Green, Blue, Purple,
Black},
PlotLegends ->
Placed[{Text[Style["Italian", 16, Italic, FontFamily -> "Times"]],
Text[Style["French", 16, Italic, FontFamily -> "Times"]],
Text[Style["American", 16, Italic, FontFamily -> "Times"]],
Text[Style["British", 16, Italic, FontFamily -> "Times"]],
Text[Style["Flemish", 16, Italic, FontFamily -> "Times"]],
Text[Style["Spanish", 16, Italic, FontFamily -> "Times"]],
Text[Style["Japanese", 16, Italic, FontFamily -> "Times"]]},
Below],
AspectRatio -> 1/2,
PlotLayout -> "Packed",
Background -> LightGray,
ImageSize -> 600,
AxesOrigin -> Center]
legending
$endgroup$
add a comment |
$begingroup$
I'd like to align the elements of the PlotLegend
in a single horizontal row beneath the TimelinePlot
, as there is plenty of room for that (especially when I adjust the Size
to be large). Instead the internal algorithms pack the PlotLegends
into three rows in this case.
How to fix that?
TimelinePlot[
{
<|{Entity["Person", "LeonardoDaVinci::47w36"] ->
Interval[{"1452", "1521"}]
}|>,
<|{Entity["Person", "CamilleCorot::vx57d"] ->
Interval[{"1796", "1875"}]
}|>,
<|{
"Piet Mondrian" -> Interval[{"1872", "1944"}]
}|>,
<|{"Thomas Gainsborough" -> Interval[{"1727", "1788"}]
}|>,
<|{Entity["Person", "JanDavidszDeHeem::2gt75"] ->
Interval[{"1606", "1684"}]
}|>,
<|{"Pablo Picasso" -> Interval[{"1881", "1973"}]
}|>,
<|{"Hokusai" -> Interval[{"1760", "1849"}]
}|>
}
,
PlotStyle -> {Red, Orange, Darker[Yellow], Green, Blue, Purple,
Black},
PlotLegends ->
Placed[{Text[Style["Italian", 16, Italic, FontFamily -> "Times"]],
Text[Style["French", 16, Italic, FontFamily -> "Times"]],
Text[Style["American", 16, Italic, FontFamily -> "Times"]],
Text[Style["British", 16, Italic, FontFamily -> "Times"]],
Text[Style["Flemish", 16, Italic, FontFamily -> "Times"]],
Text[Style["Spanish", 16, Italic, FontFamily -> "Times"]],
Text[Style["Japanese", 16, Italic, FontFamily -> "Times"]]},
Below],
AspectRatio -> 1/2,
PlotLayout -> "Packed",
Background -> LightGray,
ImageSize -> 600,
AxesOrigin -> Center]
legending
$endgroup$
1
$begingroup$
If the legend is to indicate nationality, then it should be „Dutch“ for de Heem. Also the curator of knowledge in the WL should be told that „Davidsz.“ is an abbreviation for „Davidszoon“ - so there is a period missing.
$endgroup$
– gwr
Mar 20 at 13:11
add a comment |
$begingroup$
I'd like to align the elements of the PlotLegend
in a single horizontal row beneath the TimelinePlot
, as there is plenty of room for that (especially when I adjust the Size
to be large). Instead the internal algorithms pack the PlotLegends
into three rows in this case.
How to fix that?
TimelinePlot[
{
<|{Entity["Person", "LeonardoDaVinci::47w36"] ->
Interval[{"1452", "1521"}]
}|>,
<|{Entity["Person", "CamilleCorot::vx57d"] ->
Interval[{"1796", "1875"}]
}|>,
<|{
"Piet Mondrian" -> Interval[{"1872", "1944"}]
}|>,
<|{"Thomas Gainsborough" -> Interval[{"1727", "1788"}]
}|>,
<|{Entity["Person", "JanDavidszDeHeem::2gt75"] ->
Interval[{"1606", "1684"}]
}|>,
<|{"Pablo Picasso" -> Interval[{"1881", "1973"}]
}|>,
<|{"Hokusai" -> Interval[{"1760", "1849"}]
}|>
}
,
PlotStyle -> {Red, Orange, Darker[Yellow], Green, Blue, Purple,
Black},
PlotLegends ->
Placed[{Text[Style["Italian", 16, Italic, FontFamily -> "Times"]],
Text[Style["French", 16, Italic, FontFamily -> "Times"]],
Text[Style["American", 16, Italic, FontFamily -> "Times"]],
Text[Style["British", 16, Italic, FontFamily -> "Times"]],
Text[Style["Flemish", 16, Italic, FontFamily -> "Times"]],
Text[Style["Spanish", 16, Italic, FontFamily -> "Times"]],
Text[Style["Japanese", 16, Italic, FontFamily -> "Times"]]},
Below],
AspectRatio -> 1/2,
PlotLayout -> "Packed",
Background -> LightGray,
ImageSize -> 600,
AxesOrigin -> Center]
legending
$endgroup$
I'd like to align the elements of the PlotLegend
in a single horizontal row beneath the TimelinePlot
, as there is plenty of room for that (especially when I adjust the Size
to be large). Instead the internal algorithms pack the PlotLegends
into three rows in this case.
How to fix that?
TimelinePlot[
{
<|{Entity["Person", "LeonardoDaVinci::47w36"] ->
Interval[{"1452", "1521"}]
}|>,
<|{Entity["Person", "CamilleCorot::vx57d"] ->
Interval[{"1796", "1875"}]
}|>,
<|{
"Piet Mondrian" -> Interval[{"1872", "1944"}]
}|>,
<|{"Thomas Gainsborough" -> Interval[{"1727", "1788"}]
}|>,
<|{Entity["Person", "JanDavidszDeHeem::2gt75"] ->
Interval[{"1606", "1684"}]
}|>,
<|{"Pablo Picasso" -> Interval[{"1881", "1973"}]
}|>,
<|{"Hokusai" -> Interval[{"1760", "1849"}]
}|>
}
,
PlotStyle -> {Red, Orange, Darker[Yellow], Green, Blue, Purple,
Black},
PlotLegends ->
Placed[{Text[Style["Italian", 16, Italic, FontFamily -> "Times"]],
Text[Style["French", 16, Italic, FontFamily -> "Times"]],
Text[Style["American", 16, Italic, FontFamily -> "Times"]],
Text[Style["British", 16, Italic, FontFamily -> "Times"]],
Text[Style["Flemish", 16, Italic, FontFamily -> "Times"]],
Text[Style["Spanish", 16, Italic, FontFamily -> "Times"]],
Text[Style["Japanese", 16, Italic, FontFamily -> "Times"]]},
Below],
AspectRatio -> 1/2,
PlotLayout -> "Packed",
Background -> LightGray,
ImageSize -> 600,
AxesOrigin -> Center]
legending
legending
asked Mar 20 at 8:40
David G. StorkDavid G. Stork
24.9k22155
24.9k22155
1
$begingroup$
If the legend is to indicate nationality, then it should be „Dutch“ for de Heem. Also the curator of knowledge in the WL should be told that „Davidsz.“ is an abbreviation for „Davidszoon“ - so there is a period missing.
$endgroup$
– gwr
Mar 20 at 13:11
add a comment |
1
$begingroup$
If the legend is to indicate nationality, then it should be „Dutch“ for de Heem. Also the curator of knowledge in the WL should be told that „Davidsz.“ is an abbreviation for „Davidszoon“ - so there is a period missing.
$endgroup$
– gwr
Mar 20 at 13:11
1
1
$begingroup$
If the legend is to indicate nationality, then it should be „Dutch“ for de Heem. Also the curator of knowledge in the WL should be told that „Davidsz.“ is an abbreviation for „Davidszoon“ - so there is a period missing.
$endgroup$
– gwr
Mar 20 at 13:11
$begingroup$
If the legend is to indicate nationality, then it should be „Dutch“ for de Heem. Also the curator of knowledge in the WL should be told that „Davidsz.“ is an abbreviation for „Davidszoon“ - so there is a period missing.
$endgroup$
– gwr
Mar 20 at 13:11
add a comment |
3 Answers
3
active
oldest
votes
$begingroup$
You can do this by Legended
ing the plot itself and then using LegendLayout
:
tlp = TimelinePlot[{<|{Entity["Person", "LeonardoDaVinci::47w36"] ->
Interval[{"1452", "1521"}]}|>, <|{Entity["Person",
"CamilleCorot::vx57d"] ->
Interval[{"1796", "1875"}]}|>, <|{"Piet Mondrian" ->
Interval[{"1872", "1944"}]}|>, <|{"Thomas Gainsborough" ->
Interval[{"1727", "1788"}]}|>, <|{Entity["Person",
"JanDavidszDeHeem::2gt75"] ->
Interval[{"1606", "1684"}]}|>, <|{"Pablo Picasso" ->
Interval[{"1881", "1973"}]}|>, <|{"Hokusai" ->
Interval[{"1760", "1849"}]}|>},
PlotStyle -> {Red, Orange, Darker[Yellow], Green, Blue, Purple,
Black}, AspectRatio -> 1/2, PlotLayout -> "Packed",
Background -> LightGray, ImageSize -> 600, AxesOrigin -> Center]
Now we add our legend. Note the LegendLayout
function:
Legended[tlp,
Placed[
LineLegend[{Red, Orange, Darker[Yellow], Green, Blue, Purple, Black},
{"Italian",
"French", "American", "British", "Flemish", "Spanish",
"Japanese"},
LabelStyle -> {16, Italic, FontFamily -> "Times"},
LegendLayout -> (Row[Row[#, Spacer[1]] & /@ #, Spacer[7]] &),
LegendMargins -> 0], Below]]
Resulting in:
I'm sure there's a more elegant way to do this than creating nested Row
s, but I'm afraid I don't have the time to have a look.
$endgroup$
add a comment |
$begingroup$
Just a slightly different take for readability avoiding Slot
, using Riffle
for the Spacers
and constructing the graphics with centralized components (e.g. using With
):
With[
{ data =
{ <|{Entity["Person", "LeonardoDaVinci::47w36"] -> Interval[{"1452", "1521"}]}|>
, <|{Entity["Person", "CamilleCorot::vx57d"] -> Interval[{"1796", "1875"}]}|>
, <|{"Piet Mondrian" -> Interval[{"1872", "1944"}]}|>
, <|{"Thomas Gainsborough" -> Interval[{"1727", "1788"}]}|>
, <|{Entity["Person", "JanDavidszDeHeem::2gt75"] -> Interval[{"1606", "1684"}]}|>
, <|{"Pablo Picasso" -> Interval[{"1881", "1973"}]}|>
, <|{"Hokusai" -> Interval[{"1760", "1849"}]}|>
}
, colors = { Red, Orange, Darker[Yellow], Green, Blue, Purple, Black }
, styleFunc = Function[ text,
Style[ text, 16, Italic, FontFamily -> "Times"]
]
, labels = { "Italian", "French", "American", "British", "Flemish", "Spanish", "Japanese" }
, layoutFunc = Function[ pairs, (* pairs = { {col1, lbl1}, ... } *)
pairs // RightComposition[
Flatten
, Curry[Riffle][{Spacer[2] (* after color *), Spacer[10] (* between labels *) }]
, Row
]
]
}
,
TimelinePlot[ data
, PlotStyle -> colors
, AxesOrigin -> Center
, AspectRatio -> 1/2
, PlotLegends -> Curry[Placed][Bottom] @ LineLegend[
colors,
styleFunc /@ labels
, LegendLayout -> layoutFunc
, LegendMargins -> 0
]
, PlotLayout -> "Packed"
, Background -> LightGray
, ImageSize -> 600
]
]
$endgroup$
$begingroup$
That's really interesting, it didn't occur to me that you could use currying in this way!
$endgroup$
– Carl Lange
Mar 20 at 13:24
add a comment |
$begingroup$
Per this answer, you can use the option LegendLayout -> {"Row", 1}
.
data = {<|{Entity["Person", "LeonardoDaVinci::47w36"] ->
Interval[{"1452", "1521"}]}|>, <|{Entity["Person",
"CamilleCorot::vx57d"] ->
Interval[{"1796", "1875"}]}|>, <|{"Piet Mondrian" ->
Interval[{"1872", "1944"}]}|>, <|{"Thomas Gainsborough" ->
Interval[{"1727", "1788"}]}|>, <|{Entity["Person",
"JanDavidszDeHeem::2gt75"] ->
Interval[{"1606", "1684"}]}|>, <|{"Pablo Picasso" ->
Interval[{"1881", "1973"}]}|>, <|{"Hokusai" ->
Interval[{"1760", "1849"}]}|>};
labels = {Text[
Style["Italian", 16, Italic, FontFamily -> "Times"]],
Text[Style["French", 16, Italic, FontFamily -> "Times"]],
Text[Style["American", 16, Italic, FontFamily -> "Times"]],
Text[Style["British", 16, Italic, FontFamily -> "Times"]],
Text[Style["Flemish", 16, Italic, FontFamily -> "Times"]],
Text[Style["Spanish", 16, Italic, FontFamily -> "Times"]],
Text[Style["Japanese", 16, Italic, FontFamily -> "Times"]]};
TimelinePlot[data,
PlotStyle -> {Red, Orange, Darker[Yellow], Green, Blue, Purple, Black},
PlotLegends -> Placed[LineLegend[labels, LegendLayout -> {"Row", 1}], Below],
AspectRatio -> 1/2,
PlotLayout -> "Packed",
Background -> LightGray,
ImageSize -> 600,
AxesOrigin -> Center
]
$endgroup$
$begingroup$
Cool (+1). So, they had 6 years to finally document this ... and did not?
$endgroup$
– gwr
Mar 20 at 13:31
$begingroup$
That appears to be the case.
$endgroup$
– Chip Hurst
Mar 20 at 13:38
$begingroup$
Aha, this is the real solution! I can't believe this is undocumented. I also have a hard time understanding why they used"Row"
the string rather thanRow
the symbol...
$endgroup$
– Carl Lange
Mar 20 at 13:59
1
$begingroup$
My guess is the string version maintains consistency among other choices like "ReversedRow", etc. In addition,LegendLayout
allows for an arbitrary functionf
and so parsingRow
in this way would create ambiguity.
$endgroup$
– Chip Hurst
Mar 20 at 14:02
3
$begingroup$
Since LineLegend accepts a LabelStyle option, you could simplify things by usingLineLegend[labels, LegendLayout -> {"Row", 1}, LabelStyle -> {16, Italic, FontFamily -> "Times"}]
and dropping all of those Style/Text wrappers in the labels.
$endgroup$
– Carl Woll
Mar 20 at 16:01
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "387"
};
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
});
}
});
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%2fmathematica.stackexchange.com%2fquestions%2f193622%2fadjusting-bounding-box-of-plotlegends-in-timelineplot%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
You can do this by Legended
ing the plot itself and then using LegendLayout
:
tlp = TimelinePlot[{<|{Entity["Person", "LeonardoDaVinci::47w36"] ->
Interval[{"1452", "1521"}]}|>, <|{Entity["Person",
"CamilleCorot::vx57d"] ->
Interval[{"1796", "1875"}]}|>, <|{"Piet Mondrian" ->
Interval[{"1872", "1944"}]}|>, <|{"Thomas Gainsborough" ->
Interval[{"1727", "1788"}]}|>, <|{Entity["Person",
"JanDavidszDeHeem::2gt75"] ->
Interval[{"1606", "1684"}]}|>, <|{"Pablo Picasso" ->
Interval[{"1881", "1973"}]}|>, <|{"Hokusai" ->
Interval[{"1760", "1849"}]}|>},
PlotStyle -> {Red, Orange, Darker[Yellow], Green, Blue, Purple,
Black}, AspectRatio -> 1/2, PlotLayout -> "Packed",
Background -> LightGray, ImageSize -> 600, AxesOrigin -> Center]
Now we add our legend. Note the LegendLayout
function:
Legended[tlp,
Placed[
LineLegend[{Red, Orange, Darker[Yellow], Green, Blue, Purple, Black},
{"Italian",
"French", "American", "British", "Flemish", "Spanish",
"Japanese"},
LabelStyle -> {16, Italic, FontFamily -> "Times"},
LegendLayout -> (Row[Row[#, Spacer[1]] & /@ #, Spacer[7]] &),
LegendMargins -> 0], Below]]
Resulting in:
I'm sure there's a more elegant way to do this than creating nested Row
s, but I'm afraid I don't have the time to have a look.
$endgroup$
add a comment |
$begingroup$
You can do this by Legended
ing the plot itself and then using LegendLayout
:
tlp = TimelinePlot[{<|{Entity["Person", "LeonardoDaVinci::47w36"] ->
Interval[{"1452", "1521"}]}|>, <|{Entity["Person",
"CamilleCorot::vx57d"] ->
Interval[{"1796", "1875"}]}|>, <|{"Piet Mondrian" ->
Interval[{"1872", "1944"}]}|>, <|{"Thomas Gainsborough" ->
Interval[{"1727", "1788"}]}|>, <|{Entity["Person",
"JanDavidszDeHeem::2gt75"] ->
Interval[{"1606", "1684"}]}|>, <|{"Pablo Picasso" ->
Interval[{"1881", "1973"}]}|>, <|{"Hokusai" ->
Interval[{"1760", "1849"}]}|>},
PlotStyle -> {Red, Orange, Darker[Yellow], Green, Blue, Purple,
Black}, AspectRatio -> 1/2, PlotLayout -> "Packed",
Background -> LightGray, ImageSize -> 600, AxesOrigin -> Center]
Now we add our legend. Note the LegendLayout
function:
Legended[tlp,
Placed[
LineLegend[{Red, Orange, Darker[Yellow], Green, Blue, Purple, Black},
{"Italian",
"French", "American", "British", "Flemish", "Spanish",
"Japanese"},
LabelStyle -> {16, Italic, FontFamily -> "Times"},
LegendLayout -> (Row[Row[#, Spacer[1]] & /@ #, Spacer[7]] &),
LegendMargins -> 0], Below]]
Resulting in:
I'm sure there's a more elegant way to do this than creating nested Row
s, but I'm afraid I don't have the time to have a look.
$endgroup$
add a comment |
$begingroup$
You can do this by Legended
ing the plot itself and then using LegendLayout
:
tlp = TimelinePlot[{<|{Entity["Person", "LeonardoDaVinci::47w36"] ->
Interval[{"1452", "1521"}]}|>, <|{Entity["Person",
"CamilleCorot::vx57d"] ->
Interval[{"1796", "1875"}]}|>, <|{"Piet Mondrian" ->
Interval[{"1872", "1944"}]}|>, <|{"Thomas Gainsborough" ->
Interval[{"1727", "1788"}]}|>, <|{Entity["Person",
"JanDavidszDeHeem::2gt75"] ->
Interval[{"1606", "1684"}]}|>, <|{"Pablo Picasso" ->
Interval[{"1881", "1973"}]}|>, <|{"Hokusai" ->
Interval[{"1760", "1849"}]}|>},
PlotStyle -> {Red, Orange, Darker[Yellow], Green, Blue, Purple,
Black}, AspectRatio -> 1/2, PlotLayout -> "Packed",
Background -> LightGray, ImageSize -> 600, AxesOrigin -> Center]
Now we add our legend. Note the LegendLayout
function:
Legended[tlp,
Placed[
LineLegend[{Red, Orange, Darker[Yellow], Green, Blue, Purple, Black},
{"Italian",
"French", "American", "British", "Flemish", "Spanish",
"Japanese"},
LabelStyle -> {16, Italic, FontFamily -> "Times"},
LegendLayout -> (Row[Row[#, Spacer[1]] & /@ #, Spacer[7]] &),
LegendMargins -> 0], Below]]
Resulting in:
I'm sure there's a more elegant way to do this than creating nested Row
s, but I'm afraid I don't have the time to have a look.
$endgroup$
You can do this by Legended
ing the plot itself and then using LegendLayout
:
tlp = TimelinePlot[{<|{Entity["Person", "LeonardoDaVinci::47w36"] ->
Interval[{"1452", "1521"}]}|>, <|{Entity["Person",
"CamilleCorot::vx57d"] ->
Interval[{"1796", "1875"}]}|>, <|{"Piet Mondrian" ->
Interval[{"1872", "1944"}]}|>, <|{"Thomas Gainsborough" ->
Interval[{"1727", "1788"}]}|>, <|{Entity["Person",
"JanDavidszDeHeem::2gt75"] ->
Interval[{"1606", "1684"}]}|>, <|{"Pablo Picasso" ->
Interval[{"1881", "1973"}]}|>, <|{"Hokusai" ->
Interval[{"1760", "1849"}]}|>},
PlotStyle -> {Red, Orange, Darker[Yellow], Green, Blue, Purple,
Black}, AspectRatio -> 1/2, PlotLayout -> "Packed",
Background -> LightGray, ImageSize -> 600, AxesOrigin -> Center]
Now we add our legend. Note the LegendLayout
function:
Legended[tlp,
Placed[
LineLegend[{Red, Orange, Darker[Yellow], Green, Blue, Purple, Black},
{"Italian",
"French", "American", "British", "Flemish", "Spanish",
"Japanese"},
LabelStyle -> {16, Italic, FontFamily -> "Times"},
LegendLayout -> (Row[Row[#, Spacer[1]] & /@ #, Spacer[7]] &),
LegendMargins -> 0], Below]]
Resulting in:
I'm sure there's a more elegant way to do this than creating nested Row
s, but I'm afraid I don't have the time to have a look.
edited Mar 20 at 19:03
answered Mar 20 at 11:12
Carl LangeCarl Lange
5,17211141
5,17211141
add a comment |
add a comment |
$begingroup$
Just a slightly different take for readability avoiding Slot
, using Riffle
for the Spacers
and constructing the graphics with centralized components (e.g. using With
):
With[
{ data =
{ <|{Entity["Person", "LeonardoDaVinci::47w36"] -> Interval[{"1452", "1521"}]}|>
, <|{Entity["Person", "CamilleCorot::vx57d"] -> Interval[{"1796", "1875"}]}|>
, <|{"Piet Mondrian" -> Interval[{"1872", "1944"}]}|>
, <|{"Thomas Gainsborough" -> Interval[{"1727", "1788"}]}|>
, <|{Entity["Person", "JanDavidszDeHeem::2gt75"] -> Interval[{"1606", "1684"}]}|>
, <|{"Pablo Picasso" -> Interval[{"1881", "1973"}]}|>
, <|{"Hokusai" -> Interval[{"1760", "1849"}]}|>
}
, colors = { Red, Orange, Darker[Yellow], Green, Blue, Purple, Black }
, styleFunc = Function[ text,
Style[ text, 16, Italic, FontFamily -> "Times"]
]
, labels = { "Italian", "French", "American", "British", "Flemish", "Spanish", "Japanese" }
, layoutFunc = Function[ pairs, (* pairs = { {col1, lbl1}, ... } *)
pairs // RightComposition[
Flatten
, Curry[Riffle][{Spacer[2] (* after color *), Spacer[10] (* between labels *) }]
, Row
]
]
}
,
TimelinePlot[ data
, PlotStyle -> colors
, AxesOrigin -> Center
, AspectRatio -> 1/2
, PlotLegends -> Curry[Placed][Bottom] @ LineLegend[
colors,
styleFunc /@ labels
, LegendLayout -> layoutFunc
, LegendMargins -> 0
]
, PlotLayout -> "Packed"
, Background -> LightGray
, ImageSize -> 600
]
]
$endgroup$
$begingroup$
That's really interesting, it didn't occur to me that you could use currying in this way!
$endgroup$
– Carl Lange
Mar 20 at 13:24
add a comment |
$begingroup$
Just a slightly different take for readability avoiding Slot
, using Riffle
for the Spacers
and constructing the graphics with centralized components (e.g. using With
):
With[
{ data =
{ <|{Entity["Person", "LeonardoDaVinci::47w36"] -> Interval[{"1452", "1521"}]}|>
, <|{Entity["Person", "CamilleCorot::vx57d"] -> Interval[{"1796", "1875"}]}|>
, <|{"Piet Mondrian" -> Interval[{"1872", "1944"}]}|>
, <|{"Thomas Gainsborough" -> Interval[{"1727", "1788"}]}|>
, <|{Entity["Person", "JanDavidszDeHeem::2gt75"] -> Interval[{"1606", "1684"}]}|>
, <|{"Pablo Picasso" -> Interval[{"1881", "1973"}]}|>
, <|{"Hokusai" -> Interval[{"1760", "1849"}]}|>
}
, colors = { Red, Orange, Darker[Yellow], Green, Blue, Purple, Black }
, styleFunc = Function[ text,
Style[ text, 16, Italic, FontFamily -> "Times"]
]
, labels = { "Italian", "French", "American", "British", "Flemish", "Spanish", "Japanese" }
, layoutFunc = Function[ pairs, (* pairs = { {col1, lbl1}, ... } *)
pairs // RightComposition[
Flatten
, Curry[Riffle][{Spacer[2] (* after color *), Spacer[10] (* between labels *) }]
, Row
]
]
}
,
TimelinePlot[ data
, PlotStyle -> colors
, AxesOrigin -> Center
, AspectRatio -> 1/2
, PlotLegends -> Curry[Placed][Bottom] @ LineLegend[
colors,
styleFunc /@ labels
, LegendLayout -> layoutFunc
, LegendMargins -> 0
]
, PlotLayout -> "Packed"
, Background -> LightGray
, ImageSize -> 600
]
]
$endgroup$
$begingroup$
That's really interesting, it didn't occur to me that you could use currying in this way!
$endgroup$
– Carl Lange
Mar 20 at 13:24
add a comment |
$begingroup$
Just a slightly different take for readability avoiding Slot
, using Riffle
for the Spacers
and constructing the graphics with centralized components (e.g. using With
):
With[
{ data =
{ <|{Entity["Person", "LeonardoDaVinci::47w36"] -> Interval[{"1452", "1521"}]}|>
, <|{Entity["Person", "CamilleCorot::vx57d"] -> Interval[{"1796", "1875"}]}|>
, <|{"Piet Mondrian" -> Interval[{"1872", "1944"}]}|>
, <|{"Thomas Gainsborough" -> Interval[{"1727", "1788"}]}|>
, <|{Entity["Person", "JanDavidszDeHeem::2gt75"] -> Interval[{"1606", "1684"}]}|>
, <|{"Pablo Picasso" -> Interval[{"1881", "1973"}]}|>
, <|{"Hokusai" -> Interval[{"1760", "1849"}]}|>
}
, colors = { Red, Orange, Darker[Yellow], Green, Blue, Purple, Black }
, styleFunc = Function[ text,
Style[ text, 16, Italic, FontFamily -> "Times"]
]
, labels = { "Italian", "French", "American", "British", "Flemish", "Spanish", "Japanese" }
, layoutFunc = Function[ pairs, (* pairs = { {col1, lbl1}, ... } *)
pairs // RightComposition[
Flatten
, Curry[Riffle][{Spacer[2] (* after color *), Spacer[10] (* between labels *) }]
, Row
]
]
}
,
TimelinePlot[ data
, PlotStyle -> colors
, AxesOrigin -> Center
, AspectRatio -> 1/2
, PlotLegends -> Curry[Placed][Bottom] @ LineLegend[
colors,
styleFunc /@ labels
, LegendLayout -> layoutFunc
, LegendMargins -> 0
]
, PlotLayout -> "Packed"
, Background -> LightGray
, ImageSize -> 600
]
]
$endgroup$
Just a slightly different take for readability avoiding Slot
, using Riffle
for the Spacers
and constructing the graphics with centralized components (e.g. using With
):
With[
{ data =
{ <|{Entity["Person", "LeonardoDaVinci::47w36"] -> Interval[{"1452", "1521"}]}|>
, <|{Entity["Person", "CamilleCorot::vx57d"] -> Interval[{"1796", "1875"}]}|>
, <|{"Piet Mondrian" -> Interval[{"1872", "1944"}]}|>
, <|{"Thomas Gainsborough" -> Interval[{"1727", "1788"}]}|>
, <|{Entity["Person", "JanDavidszDeHeem::2gt75"] -> Interval[{"1606", "1684"}]}|>
, <|{"Pablo Picasso" -> Interval[{"1881", "1973"}]}|>
, <|{"Hokusai" -> Interval[{"1760", "1849"}]}|>
}
, colors = { Red, Orange, Darker[Yellow], Green, Blue, Purple, Black }
, styleFunc = Function[ text,
Style[ text, 16, Italic, FontFamily -> "Times"]
]
, labels = { "Italian", "French", "American", "British", "Flemish", "Spanish", "Japanese" }
, layoutFunc = Function[ pairs, (* pairs = { {col1, lbl1}, ... } *)
pairs // RightComposition[
Flatten
, Curry[Riffle][{Spacer[2] (* after color *), Spacer[10] (* between labels *) }]
, Row
]
]
}
,
TimelinePlot[ data
, PlotStyle -> colors
, AxesOrigin -> Center
, AspectRatio -> 1/2
, PlotLegends -> Curry[Placed][Bottom] @ LineLegend[
colors,
styleFunc /@ labels
, LegendLayout -> layoutFunc
, LegendMargins -> 0
]
, PlotLayout -> "Packed"
, Background -> LightGray
, ImageSize -> 600
]
]
answered Mar 20 at 12:48
gwrgwr
8,60322861
8,60322861
$begingroup$
That's really interesting, it didn't occur to me that you could use currying in this way!
$endgroup$
– Carl Lange
Mar 20 at 13:24
add a comment |
$begingroup$
That's really interesting, it didn't occur to me that you could use currying in this way!
$endgroup$
– Carl Lange
Mar 20 at 13:24
$begingroup$
That's really interesting, it didn't occur to me that you could use currying in this way!
$endgroup$
– Carl Lange
Mar 20 at 13:24
$begingroup$
That's really interesting, it didn't occur to me that you could use currying in this way!
$endgroup$
– Carl Lange
Mar 20 at 13:24
add a comment |
$begingroup$
Per this answer, you can use the option LegendLayout -> {"Row", 1}
.
data = {<|{Entity["Person", "LeonardoDaVinci::47w36"] ->
Interval[{"1452", "1521"}]}|>, <|{Entity["Person",
"CamilleCorot::vx57d"] ->
Interval[{"1796", "1875"}]}|>, <|{"Piet Mondrian" ->
Interval[{"1872", "1944"}]}|>, <|{"Thomas Gainsborough" ->
Interval[{"1727", "1788"}]}|>, <|{Entity["Person",
"JanDavidszDeHeem::2gt75"] ->
Interval[{"1606", "1684"}]}|>, <|{"Pablo Picasso" ->
Interval[{"1881", "1973"}]}|>, <|{"Hokusai" ->
Interval[{"1760", "1849"}]}|>};
labels = {Text[
Style["Italian", 16, Italic, FontFamily -> "Times"]],
Text[Style["French", 16, Italic, FontFamily -> "Times"]],
Text[Style["American", 16, Italic, FontFamily -> "Times"]],
Text[Style["British", 16, Italic, FontFamily -> "Times"]],
Text[Style["Flemish", 16, Italic, FontFamily -> "Times"]],
Text[Style["Spanish", 16, Italic, FontFamily -> "Times"]],
Text[Style["Japanese", 16, Italic, FontFamily -> "Times"]]};
TimelinePlot[data,
PlotStyle -> {Red, Orange, Darker[Yellow], Green, Blue, Purple, Black},
PlotLegends -> Placed[LineLegend[labels, LegendLayout -> {"Row", 1}], Below],
AspectRatio -> 1/2,
PlotLayout -> "Packed",
Background -> LightGray,
ImageSize -> 600,
AxesOrigin -> Center
]
$endgroup$
$begingroup$
Cool (+1). So, they had 6 years to finally document this ... and did not?
$endgroup$
– gwr
Mar 20 at 13:31
$begingroup$
That appears to be the case.
$endgroup$
– Chip Hurst
Mar 20 at 13:38
$begingroup$
Aha, this is the real solution! I can't believe this is undocumented. I also have a hard time understanding why they used"Row"
the string rather thanRow
the symbol...
$endgroup$
– Carl Lange
Mar 20 at 13:59
1
$begingroup$
My guess is the string version maintains consistency among other choices like "ReversedRow", etc. In addition,LegendLayout
allows for an arbitrary functionf
and so parsingRow
in this way would create ambiguity.
$endgroup$
– Chip Hurst
Mar 20 at 14:02
3
$begingroup$
Since LineLegend accepts a LabelStyle option, you could simplify things by usingLineLegend[labels, LegendLayout -> {"Row", 1}, LabelStyle -> {16, Italic, FontFamily -> "Times"}]
and dropping all of those Style/Text wrappers in the labels.
$endgroup$
– Carl Woll
Mar 20 at 16:01
add a comment |
$begingroup$
Per this answer, you can use the option LegendLayout -> {"Row", 1}
.
data = {<|{Entity["Person", "LeonardoDaVinci::47w36"] ->
Interval[{"1452", "1521"}]}|>, <|{Entity["Person",
"CamilleCorot::vx57d"] ->
Interval[{"1796", "1875"}]}|>, <|{"Piet Mondrian" ->
Interval[{"1872", "1944"}]}|>, <|{"Thomas Gainsborough" ->
Interval[{"1727", "1788"}]}|>, <|{Entity["Person",
"JanDavidszDeHeem::2gt75"] ->
Interval[{"1606", "1684"}]}|>, <|{"Pablo Picasso" ->
Interval[{"1881", "1973"}]}|>, <|{"Hokusai" ->
Interval[{"1760", "1849"}]}|>};
labels = {Text[
Style["Italian", 16, Italic, FontFamily -> "Times"]],
Text[Style["French", 16, Italic, FontFamily -> "Times"]],
Text[Style["American", 16, Italic, FontFamily -> "Times"]],
Text[Style["British", 16, Italic, FontFamily -> "Times"]],
Text[Style["Flemish", 16, Italic, FontFamily -> "Times"]],
Text[Style["Spanish", 16, Italic, FontFamily -> "Times"]],
Text[Style["Japanese", 16, Italic, FontFamily -> "Times"]]};
TimelinePlot[data,
PlotStyle -> {Red, Orange, Darker[Yellow], Green, Blue, Purple, Black},
PlotLegends -> Placed[LineLegend[labels, LegendLayout -> {"Row", 1}], Below],
AspectRatio -> 1/2,
PlotLayout -> "Packed",
Background -> LightGray,
ImageSize -> 600,
AxesOrigin -> Center
]
$endgroup$
$begingroup$
Cool (+1). So, they had 6 years to finally document this ... and did not?
$endgroup$
– gwr
Mar 20 at 13:31
$begingroup$
That appears to be the case.
$endgroup$
– Chip Hurst
Mar 20 at 13:38
$begingroup$
Aha, this is the real solution! I can't believe this is undocumented. I also have a hard time understanding why they used"Row"
the string rather thanRow
the symbol...
$endgroup$
– Carl Lange
Mar 20 at 13:59
1
$begingroup$
My guess is the string version maintains consistency among other choices like "ReversedRow", etc. In addition,LegendLayout
allows for an arbitrary functionf
and so parsingRow
in this way would create ambiguity.
$endgroup$
– Chip Hurst
Mar 20 at 14:02
3
$begingroup$
Since LineLegend accepts a LabelStyle option, you could simplify things by usingLineLegend[labels, LegendLayout -> {"Row", 1}, LabelStyle -> {16, Italic, FontFamily -> "Times"}]
and dropping all of those Style/Text wrappers in the labels.
$endgroup$
– Carl Woll
Mar 20 at 16:01
add a comment |
$begingroup$
Per this answer, you can use the option LegendLayout -> {"Row", 1}
.
data = {<|{Entity["Person", "LeonardoDaVinci::47w36"] ->
Interval[{"1452", "1521"}]}|>, <|{Entity["Person",
"CamilleCorot::vx57d"] ->
Interval[{"1796", "1875"}]}|>, <|{"Piet Mondrian" ->
Interval[{"1872", "1944"}]}|>, <|{"Thomas Gainsborough" ->
Interval[{"1727", "1788"}]}|>, <|{Entity["Person",
"JanDavidszDeHeem::2gt75"] ->
Interval[{"1606", "1684"}]}|>, <|{"Pablo Picasso" ->
Interval[{"1881", "1973"}]}|>, <|{"Hokusai" ->
Interval[{"1760", "1849"}]}|>};
labels = {Text[
Style["Italian", 16, Italic, FontFamily -> "Times"]],
Text[Style["French", 16, Italic, FontFamily -> "Times"]],
Text[Style["American", 16, Italic, FontFamily -> "Times"]],
Text[Style["British", 16, Italic, FontFamily -> "Times"]],
Text[Style["Flemish", 16, Italic, FontFamily -> "Times"]],
Text[Style["Spanish", 16, Italic, FontFamily -> "Times"]],
Text[Style["Japanese", 16, Italic, FontFamily -> "Times"]]};
TimelinePlot[data,
PlotStyle -> {Red, Orange, Darker[Yellow], Green, Blue, Purple, Black},
PlotLegends -> Placed[LineLegend[labels, LegendLayout -> {"Row", 1}], Below],
AspectRatio -> 1/2,
PlotLayout -> "Packed",
Background -> LightGray,
ImageSize -> 600,
AxesOrigin -> Center
]
$endgroup$
Per this answer, you can use the option LegendLayout -> {"Row", 1}
.
data = {<|{Entity["Person", "LeonardoDaVinci::47w36"] ->
Interval[{"1452", "1521"}]}|>, <|{Entity["Person",
"CamilleCorot::vx57d"] ->
Interval[{"1796", "1875"}]}|>, <|{"Piet Mondrian" ->
Interval[{"1872", "1944"}]}|>, <|{"Thomas Gainsborough" ->
Interval[{"1727", "1788"}]}|>, <|{Entity["Person",
"JanDavidszDeHeem::2gt75"] ->
Interval[{"1606", "1684"}]}|>, <|{"Pablo Picasso" ->
Interval[{"1881", "1973"}]}|>, <|{"Hokusai" ->
Interval[{"1760", "1849"}]}|>};
labels = {Text[
Style["Italian", 16, Italic, FontFamily -> "Times"]],
Text[Style["French", 16, Italic, FontFamily -> "Times"]],
Text[Style["American", 16, Italic, FontFamily -> "Times"]],
Text[Style["British", 16, Italic, FontFamily -> "Times"]],
Text[Style["Flemish", 16, Italic, FontFamily -> "Times"]],
Text[Style["Spanish", 16, Italic, FontFamily -> "Times"]],
Text[Style["Japanese", 16, Italic, FontFamily -> "Times"]]};
TimelinePlot[data,
PlotStyle -> {Red, Orange, Darker[Yellow], Green, Blue, Purple, Black},
PlotLegends -> Placed[LineLegend[labels, LegendLayout -> {"Row", 1}], Below],
AspectRatio -> 1/2,
PlotLayout -> "Packed",
Background -> LightGray,
ImageSize -> 600,
AxesOrigin -> Center
]
answered Mar 20 at 13:29
Chip HurstChip Hurst
23.1k15893
23.1k15893
$begingroup$
Cool (+1). So, they had 6 years to finally document this ... and did not?
$endgroup$
– gwr
Mar 20 at 13:31
$begingroup$
That appears to be the case.
$endgroup$
– Chip Hurst
Mar 20 at 13:38
$begingroup$
Aha, this is the real solution! I can't believe this is undocumented. I also have a hard time understanding why they used"Row"
the string rather thanRow
the symbol...
$endgroup$
– Carl Lange
Mar 20 at 13:59
1
$begingroup$
My guess is the string version maintains consistency among other choices like "ReversedRow", etc. In addition,LegendLayout
allows for an arbitrary functionf
and so parsingRow
in this way would create ambiguity.
$endgroup$
– Chip Hurst
Mar 20 at 14:02
3
$begingroup$
Since LineLegend accepts a LabelStyle option, you could simplify things by usingLineLegend[labels, LegendLayout -> {"Row", 1}, LabelStyle -> {16, Italic, FontFamily -> "Times"}]
and dropping all of those Style/Text wrappers in the labels.
$endgroup$
– Carl Woll
Mar 20 at 16:01
add a comment |
$begingroup$
Cool (+1). So, they had 6 years to finally document this ... and did not?
$endgroup$
– gwr
Mar 20 at 13:31
$begingroup$
That appears to be the case.
$endgroup$
– Chip Hurst
Mar 20 at 13:38
$begingroup$
Aha, this is the real solution! I can't believe this is undocumented. I also have a hard time understanding why they used"Row"
the string rather thanRow
the symbol...
$endgroup$
– Carl Lange
Mar 20 at 13:59
1
$begingroup$
My guess is the string version maintains consistency among other choices like "ReversedRow", etc. In addition,LegendLayout
allows for an arbitrary functionf
and so parsingRow
in this way would create ambiguity.
$endgroup$
– Chip Hurst
Mar 20 at 14:02
3
$begingroup$
Since LineLegend accepts a LabelStyle option, you could simplify things by usingLineLegend[labels, LegendLayout -> {"Row", 1}, LabelStyle -> {16, Italic, FontFamily -> "Times"}]
and dropping all of those Style/Text wrappers in the labels.
$endgroup$
– Carl Woll
Mar 20 at 16:01
$begingroup$
Cool (+1). So, they had 6 years to finally document this ... and did not?
$endgroup$
– gwr
Mar 20 at 13:31
$begingroup$
Cool (+1). So, they had 6 years to finally document this ... and did not?
$endgroup$
– gwr
Mar 20 at 13:31
$begingroup$
That appears to be the case.
$endgroup$
– Chip Hurst
Mar 20 at 13:38
$begingroup$
That appears to be the case.
$endgroup$
– Chip Hurst
Mar 20 at 13:38
$begingroup$
Aha, this is the real solution! I can't believe this is undocumented. I also have a hard time understanding why they used
"Row"
the string rather than Row
the symbol...$endgroup$
– Carl Lange
Mar 20 at 13:59
$begingroup$
Aha, this is the real solution! I can't believe this is undocumented. I also have a hard time understanding why they used
"Row"
the string rather than Row
the symbol...$endgroup$
– Carl Lange
Mar 20 at 13:59
1
1
$begingroup$
My guess is the string version maintains consistency among other choices like "ReversedRow", etc. In addition,
LegendLayout
allows for an arbitrary function f
and so parsing Row
in this way would create ambiguity.$endgroup$
– Chip Hurst
Mar 20 at 14:02
$begingroup$
My guess is the string version maintains consistency among other choices like "ReversedRow", etc. In addition,
LegendLayout
allows for an arbitrary function f
and so parsing Row
in this way would create ambiguity.$endgroup$
– Chip Hurst
Mar 20 at 14:02
3
3
$begingroup$
Since LineLegend accepts a LabelStyle option, you could simplify things by using
LineLegend[labels, LegendLayout -> {"Row", 1}, LabelStyle -> {16, Italic, FontFamily -> "Times"}]
and dropping all of those Style/Text wrappers in the labels.$endgroup$
– Carl Woll
Mar 20 at 16:01
$begingroup$
Since LineLegend accepts a LabelStyle option, you could simplify things by using
LineLegend[labels, LegendLayout -> {"Row", 1}, LabelStyle -> {16, Italic, FontFamily -> "Times"}]
and dropping all of those Style/Text wrappers in the labels.$endgroup$
– Carl Woll
Mar 20 at 16:01
add a comment |
Thanks for contributing an answer to Mathematica 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.
Use MathJax to format equations. MathJax reference.
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%2fmathematica.stackexchange.com%2fquestions%2f193622%2fadjusting-bounding-box-of-plotlegends-in-timelineplot%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
$begingroup$
If the legend is to indicate nationality, then it should be „Dutch“ for de Heem. Also the curator of knowledge in the WL should be told that „Davidsz.“ is an abbreviation for „Davidszoon“ - so there is a period missing.
$endgroup$
– gwr
Mar 20 at 13:11