1、簡介瀏覽器
常常利用Python進行數據可視化的朋友必定用過或據說過plotly這樣的神器,我在(數據科學學習手札43)Plotly基礎內容介紹中也曾作過很是詳細的介紹,其渲染出的圖像以瀏覽器爲載體,很是精美,且繪製圖像的自由程度堪比ggplot2,其爲R也提供了接口,在plotly包中,但對於已經習慣用ggplot2進行可視化的朋友而言,天然是不太樂意轉向plotly的學習,有趣的是plotly的R包中有着函數ggplotly(),能夠將ggplot2生成的圖像轉換爲交互式的plotly圖像,且還能夠添加上ggplot2原生圖像中沒法實現的交互標籤,最重要的是其使用方法很是傻瓜式,本文就將結合幾個小例子來介紹ggplotly()的神奇做用;函數
2、ggplotly()的使用學習
咱們從一個簡單的小例子出發:ui
library(tidyverse) library(plotly) p <- ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width, color=Species, shape=Species)) + geom_point(size=6, alpha=0.6) p
這裏咱們利用R自帶的鳶尾花數據繪製了一個簡單的散點圖,接着咱們只須要簡單的一行代碼就能夠實現神奇的轉換效果:spa
library(plotly)
ggplotly(p)
能夠觀察到,通過ggplotly()處理後的ggplot2圖像經過R-studio中的viewer窗口打開,即當前的圖像是網頁文件,而隨着咱們鼠標的放置,能夠在保留原有ggplot2外觀的狀況下,進行plotly式的交互操做,注意上圖中咱們鼠標放置點位對應顯示的懸浮標籤,其中的內容是默認的格式,即在這張ggplot2圖像中所涉及到的全部信息,在上圖中即爲橫縱軸對應的數據,以及在定義形狀和顏色時使用到的分類屬性信息,若是咱們想要在原有的ggplot2圖像的基礎上對文本標籤內容進行一些改變,能夠利用下面的方式:
code
mytext <- paste("Sepal Length is ", iris$Sepal.Length, "\n" , "Sepal Width is ", iris$Sepal.Width, "\n", "Row Number: ",rownames(iris), sep="") pp <- plotly_build(p) style(pp, text=mytext, hoverinfo = "text", traces = c(1, 2, 3))
這裏咱們先定義mytext向量來保存每個點咱們但願其懸浮標籤中顯示的信息,接着利用plotly_build()函數(換成ggplotly()效果相同)來將原生的ggplot2圖像轉化爲交互圖像,再利用style()來調整交互圖像上的懸浮標籤信息,效果以下圖所示:blog
能夠看到懸浮標籤內的信息如咱們所願,但ggplot2中的某些部件在plotly中是相沖突的,例如圖例:接口
p_changed <- ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width, color=Species, shape=Species)) + geom_point(size=6, alpha=0.6) + theme(legend.position = c(.83, .9)) p_changed
在上圖中咱們微調了圖例的位置,可是對上圖使用ggplotly()後效果以下:ci
能夠看到圖例並無獲得改變,所以在實際應用中使用ggplotly()還需慎重考慮。get
以上就是本文的所有內容,若有筆誤望指出。