将ggplot2形状注释放入标题中

时间:2017-11-29 17:28:22

标签: r ggplot2 title shape subtitle

我正在尝试将形状(和填充颜色)插入标题/副标题中,但找不到这样做的语法:

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/test"
xmlns:tns="http://www.example.org/test" elementFormDefault="qualified">

  <element name="strOutputAnyType" type="tns:StrOutputAnyType" />

  <element name="strOutputChoice" type="tns:StrOutputChoice" />

  <complexType name="StrOutputAnyType">
    <sequence>
        <element name="ElencoPreventivi" type="anyType" />
    </sequence>
  </complexType>

  <complexType name="StrOutputChoice">
    <sequence>
        <choice>
            <element name="arrayOfStrPrev" type="tns:ArrayOfStrPrev" />
            <element name="arrayOfStrPreventivo" type="tns:ArrayOfStrPreventivo" />
        </choice>
    </sequence>
  </complexType>

  <complexType name="ArrayOfStrPrev">
    <sequence>
        <element name="strPrev" type="tns:StrPrev" minOccurs="1"
            maxOccurs="unbounded" />
    </sequence>
  </complexType>

  <complexType name="ArrayOfStrPreventivo">
    <sequence>
        <element name="StrPreventivo" type="tns:StrPreventivo"
            minOccurs="1" maxOccurs="unbounded" />
    </sequence>
  </complexType>

  <simpleType name="StrPrev">
    <restriction base="string" />
  </simpleType>

  <simpleType name="StrPreventivo">
    <restriction base="string" />
  </simpleType>

</schema>

连连呢? Annotate似乎只能在情节空间中使用。

1 个答案:

答案 0 :(得分:1)

使用图像进行可能的解决方法是使用图例来获得所需的外观。这涉及首先制作一个传奇。我使用color美学来制作图例,每个点图层一个。我在aes中提供的字符串将是标签图例。

我通过scale_color_manual修改了图例。这涉及以正确的顺序获取标签并设置颜色。此外,我使用guide_legend选项将标签移动到键框的左侧(默认为右侧)并获得正确的形状和填充点。

然后,在theme中,图例可以移动到左上角,键框可以用白色而不是灰色填充并缩小尺寸,图例周围的空间可以减少。

这一切看起来像:

ggplot(D, aes(x = carat, y = price))+  
     geom_jitter(data = G) +
     geom_point(data = G, aes(color = "and G diamonds"), shape = 6) +
     geom_jitter() +
     geom_point(aes(color = "D diamonds"), shape = 22, fill='red') +
     labs(title = "This is a title") +
     scale_color_manual(name = NULL, values = c("black", "black"), 
                        limits = c("D diamonds", "and G diamonds"),
                        guide = guide_legend(label.position = "left",
                                             override.aes = list(shape = c(22, 6),
                                                                 fill = c("red", "black")) ) ) +
     theme(legend.direction = "horizontal",
           legend.position = "top",
           legend.justification = "left",
           legend.key = element_rect(fill = "white"),
           legend.key.size = unit(.5, "mm"),
           legend.margin = margin(b = 0, 0, 0, 0) )

enter image description here

从ggplot2的current development version开始, ggplot2_2.1.0.9001 legend.box.spacing中有一个theme选项可缩小地块与传奇。我认为legend.box.spacing = unit(2, "mm")看起来很不错。