2016-09-23 5 views
2

私はプロットとRで伝説を微調整しています。私が理解できない1つのことは、(可能であれば)凡例アイテムを再配置してプロットの下に中央に配置されています。私は以下の凡例を取得することができていますplotly in R:凡例アイテムを水平に、プロットの下に中央に表示

plot_ly(data = iris, x = Sepal.Length, y = Petal.Length, mode = "markers", color = Species) 

を、以下のことにより、プロットにセンタリング:

plot_ly(data = iris, x = Sepal.Length, y = Petal.Length, mode = "markers", color = Species) %>% layout(legend = list(x = 0.35, y = -0.5)) 
ここに示すように、デフォルトの凡例項目は、垂直に配置して、プロットの右側に配置されています

しかし、私はこの凡例の位置が私がプロットをどのように見るか(プロットウィンドウを作るなどの寸法)に基づいて変化することに気付きます。このため、伝説は間違ってプロットを重複させることがあり(高すぎる位置にすることによって)、またはプロットから邪魔になるほど遠くに(低すぎるように)配置することがあります。ここで凡例の例示画像が低すぎる配置されている:プロット下の凡例を配置する際

Legend moves depending on plot window dimensions

はまた、それが(代わりに垂直の)水平に列挙された凡例アイテムを有することがよく見えることができます。この例では、virginica、versicolor、およびsetosaを(上から下への)凡例の左から右に並べるとよいでしょう。したがって、理想的には、このように見える:

Ideal

それは、これを得ることが可能である - 水平にその項目をリストしながら(つまり、ウィンドウのサイズと位置を変更しません)つまり、伝説が中心に位置し、プロットの下に?

答えて

8

documentationによると、以下のトリックを行う必要があります。

data(iris) 
plot_ly(data = iris, 
     x = ~Sepal.Length, 
     y = ~Petal.Length, 
     mode = "markers", 
     color = ~Species) %>% 
layout(legend = list(orientation = "h", # show entries horizontally 
        xanchor = "center", # use center of legend as anchor 
        x = 0.5)    # put legend in center of x-axis 

それはその後、伝説の中央にアンカー(私たちは指定位置ポイント)を設定し、そして、「水平」に伝説の向きを設定し、それをx軸の中央に配置します。次のグラフが得られます。

enter image description here

関連する問題