2

我正在尝试为我的几个情节获得一个不错的图例,但是,我无法更改图例的文本对齐方式,并且它正在做各种奇怪的事情。

第一件事是,当我希望它向右对齐时,文本对齐似乎设置为居中,如果您复制并粘贴以下代码,您可以看到:

Needs["PlotLegends`"]

ShowLegend[
 Plot[x, {x, 0, 10000}, 
  ImageSize -> {700, 
    Automatic}], {{{Style["\[FilledCircle]", 12, Red], 
    "3He exp 4 'sigma D 3He' 'stripping'"}, {Style["\[EmptySquare]", 
     12, Red], 
    "3He 'sigma 3He' 'breakup'"}, {Graphics@{Blue, Dashed, 
      Line[{{0, 0}, {2, 0}}]}, 
    "3He 'pickup' 'stripping'"}, {Graphics@{Blue, Dotted, 
      Line[{{0, 0}, {2, 0}}]}, 
    "3He 'breakup'"}, {Graphics@{Blue, Line[{{0, 0}, {2, 0}}]}, 
    "3He Total"}}, LegendPosition -> {0.0, 0.2}, 
  LegendSize -> {0.7, 0.3}, LegendShadow -> False, 
  LegendBorder -> None,
  LegendTextOffset -> {-0.2, 0}}]

(注意这里的 x 的图只是一个虚拟图,图例的位置根据我的实际图进行了优化)

我遇到的第二个问题是图例文本的垂直对齐。如果我运行此代码:

ShowLegend[
 Plot[x, {x, 0, 10000}, 
  ImageSize -> {700, 
    Automatic}], {{{Style["\[FilledCircle]", 12, Red], 
    "3H exp"}, {Graphics@{Blue, Line[{{0, 0}, {2, 0}}]}, 
    "3H theory"}}, LegendPosition -> {-0.8, 0.3}, 
  LegendSize -> {0.4, 0.3}, LegendShadow -> False, 
  LegendBorder -> None, LegendTextOffset -> {-3.0, 0}}]

第一个文字描述“3H exp”是各种混乱。不仅水平排在“3H 理论”正文之前,而且垂直对齐甚至不与红圈对齐!

我该如何解决这些问题?

4

1 回答 1

0

您的第一个问题可以通过使用LegendTextSpace代替来解决LegendTextOffset,例如

Needs["PlotLegends`"]; 
ShowLegend[Plot[x, {x, 0, 10000}, ImageSize -> {700, Automatic}], {{
   {Style["\[FilledCircle]", 12, Red], "3He exp 4 'sigma D 3He' 'stripping'"},
   {Style["\[EmptySquare]", 12, Red], "3He 'sigma 3He' 'breakup'"},
   {Graphics@{Blue, Dashed, Line[{{0, 0}, {2, 0}}]}, "3He 'pickup' 'stripping'"},
   {Graphics@{Blue, Dotted, Line[{{0, 0}, {2, 0}}]}, "3He 'breakup'"},
   {Graphics@{Blue, Line[{{0, 0}, {2, 0}}]}, "3He Total"}},
  LegendPosition -> {0.0, 0.2},
  LegendSize -> {0.7, 0.3},
  LegendShadow -> False,
  LegendBorder -> None,
  LegendTextSpace -> 6}]

对于下一个问题,这种错位似乎是无法避免的,如你LegendSize -> {0.7, 1.3}在上面的代码中设置的可以看到。作为一种解决方法 - 保持您想要的图例间距 - 您可以尝试以下操作:-

ShowLegend[Plot[x, {x, 0, 10000}, ImageSize -> {700, Automatic}], {{
   {Style["\[FilledCircle]", 12, Red], "3H exp"},
   {Style["\[FilledCircle]", 12, White], ""},
   {Graphics@{Blue, Line[{{0, 0}, {2, 0}}]}, "3H theory"}},
  LegendPosition -> {-0.8, 0.3},
  LegendSize -> {0.6, 0.15},
  LegendShadow -> False,
  LegendBorder -> None,
  LegendTextSpace -> 8}]
于 2013-05-21T08:23:05.657 回答