Adjusting bounding box of PlotLegends in TimelinePlotHow 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
Lightning Web Components - Not available in app builder
Is there a word to describe the feeling of being transfixed out of horror?
Can one define wavefronts for waves travelling on a stretched string?
How did Odysseus get injured on his leg?
My boss asked me to take a one-day class, then signs it up as a day off
Getting the lowest value with key in array
Partial sums of primes
How do I repair my stair bannister?
Why is .bash_history periodically wiped?
What linear sensor for a keyboard?
Did US corporations pay demonstrators in the German demonstrations against article 13?
Bob has never been a M before
What if somebody invests in my application?
General topology proving something for all of its points
A social experiment. What is the worst that can happen?
Can a Gentile theist be saved?
When is separating the total wavefunction into a space part and a spin part possible?
Have I saved too much for retirement so far?
Indicating multiple different modes of speech (fantasy language or telepathy)
Why does this part of the Space Shuttle launch pad seem to be floating in air?
Giant Toughroad SLR 2 for 200 miles in two days, will it make it?
What is this type of notehead called?
Female=gender counterpart?
How does the Warlock's Eyes of the Rune keeper interact with Typos?
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[
"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[
"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[
"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[
"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.8k22155
24.8k22155
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["Thomas Gainsborough" ->
Interval["1727", "1788"],
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 =
"Thomas Gainsborough" -> Interval["1727", "1788"]
, 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 = "Piet Mondrian" ->
Interval["1872", "1944"];
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["Thomas Gainsborough" ->
Interval["1727", "1788"],
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["Thomas Gainsborough" ->
Interval["1727", "1788"],
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["Thomas Gainsborough" ->
Interval["1727", "1788"],
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["Thomas Gainsborough" ->
Interval["1727", "1788"],
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,02711141
5,02711141
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 =
"Thomas Gainsborough" -> Interval["1727", "1788"]
, 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 =
"Thomas Gainsborough" -> Interval["1727", "1788"]
, 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 =
"Thomas Gainsborough" -> Interval["1727", "1788"]
, 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 =
"Thomas Gainsborough" -> Interval["1727", "1788"]
, 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,58322861
8,58322861
$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 = "Piet Mondrian" ->
Interval["1872", "1944"];
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 = "Piet Mondrian" ->
Interval["1872", "1944"];
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 = "Piet Mondrian" ->
Interval["1872", "1944"];
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 = "Piet Mondrian" ->
Interval["1872", "1944"];
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
22.5k15892
22.5k15892
$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