Python可視化—Plotly_02_基礎(chǔ)

碎語

  • 學(xué)習(xí)的正態(tài)曲線:入門容易,精通難
  • 積累的正態(tài)曲線:先越讀越多辆布,后越讀越少

Plotly畫圖三步走

  • 離線前置準(zhǔn)備
import plotly                     ## 導(dǎo)入包
import plotly.graph_objs as go    ## graph_objs是plotly下的子模塊,用于導(dǎo)入plotly中所有的圖形對(duì)象。導(dǎo)入圖形對(duì)象之后便可以根據(jù)需要呈現(xiàn)的數(shù)據(jù)和自定義的圖形參數(shù)來定義一個(gè)grapg對(duì)象蝇棉,再導(dǎo)入plotly.offline.iplot()中進(jìn)行最終的呈現(xiàn)
import plotly.offline as offline  ## 進(jìn)入離線模式
offline.inti_notebook.mode()      ## 在Jupyter Notebook中顯示,如果只想生成一個(gè)HTML的鏈接這步可以省略
  • 可視化組成的部分

圖像最終的展現(xiàn)由:數(shù)據(jù)部分(trace)芥永、背景(布局:layout)部分兩部分組成篡殷。Plotly分開定義這兩部分,然后使用go.Figure組裝這兩部分埋涧,最后使用plotly.offline.iplot(fig)畫圖:


制圖三步走

第一步:定義Trace

根據(jù)數(shù)據(jù)選擇你需要的圖表板辽,構(gòu)造一個(gè)Trace,以散點(diǎn)圖為例:

Trace = go.Scatter(
                x = df.index,#X軸的值奇瘦,這里取得的是DF的索引,工作中使用的多
                y = df['aa'],#y軸的值劲弦,這里取得的是DF的某一列耳标。
                mode = 'markers+lines',#散點(diǎn)的類型,這種事點(diǎn)和線的連接
                market = dict(),#字典邑跪,點(diǎn)的設(shè)置次坡,大小等等
                name = '',#圖例名稱
                text = df['aa'],#設(shè)置數(shù)據(jù)標(biāo)簽的值,散點(diǎn)此處的數(shù)據(jù)標(biāo)簽不會(huì)顯示画畅,是鼠標(biāo)放在上面會(huì)有顯示砸琅,所以要想使用顯性的數(shù)據(jù)標(biāo)簽,則需要使用注釋
                textposition = 'right',#數(shù)據(jù)標(biāo)簽的位置
                textfont = dict(size = 100,color = 'black')#數(shù)據(jù)標(biāo)簽的大小等屬性轴踱,其屬性都放在字典中
                )
data = [Trace] ##把圖像放在list中

由于參數(shù)太多提供了部分通用的參數(shù)症脂,具體個(gè)圖形的參數(shù),有多不同淫僻,我會(huì)在后面每一個(gè)圖形中細(xì)聊诱篷。

第二步:定義Layout

此步主要是定義布局相關(guān)的參數(shù),主要有文字雳灵、標(biāo)題棕所、大小、背景悯辙、坐標(biāo)軸橙凳、圖例

layout = go.Layout(
                font = dirt(family = 'arial',size = 16 ,color = ''),#用在此處是控制全局的字體字典類型
                title = 'aa',#標(biāo)題,圖像的主標(biāo)題
                titlefont = dict(family= '',size = '',color = ''),#此處獨(dú)立控制主標(biāo)題的字體
                autosize = False,#bool笑撞,圖像的大小是否自動(dòng)
                width = 34 ,# int,圖像的寬度
                height = 50,# int ,圖像的高度
                plot_bgcolor = '',str岛啸,背景顏色
                xaxis = dict(
                            title = 'aa',#坐標(biāo)軸標(biāo)題
                            titlefont = dict(),#參數(shù)與之前一樣
                            type = 'category',#str型,用于控制橫坐標(biāo)軸類型茴肥,'-'表示根據(jù)輸入數(shù)據(jù)自適應(yīng)調(diào)整坚踩,'linear'表示線性坐標(biāo)軸,'log'表示對(duì)數(shù)坐標(biāo)軸瓤狐,'date'表示日期型坐標(biāo)軸瞬铸,'category'表示分類型坐標(biāo)軸,默認(rèn)為'-'
                            autorange = bool,#bool型或'reversed'础锐,控制是否根據(jù)橫坐標(biāo)對(duì)應(yīng)的數(shù)據(jù)自動(dòng)調(diào)整坐標(biāo)軸范圍嗓节,默認(rèn)為True
                            range = [起點(diǎn),終點(diǎn)],#list型皆警,控制橫坐標(biāo)軸的區(qū)間范圍拦宣,自行設(shè)置無默認(rèn)項(xiàng),取決于橫坐標(biāo)軸的數(shù)據(jù)類型,格式均為[左端點(diǎn),右端點(diǎn)]
                            tickmode = 'auto',#str型鸵隧,設(shè)置坐標(biāo)軸刻度的格式绸罗,'auto'表示自動(dòng)根據(jù)輸入的數(shù)據(jù)來決定,'linear'表示線性的數(shù)值型豆瘫,'array'表示由自定義的數(shù)組來表示(用數(shù)組來自定義刻度標(biāo)簽時(shí)必須選擇此項(xiàng))
                            tickvals=[],#list珊蟀、numpy array或pandas中的series,作為坐標(biāo)軸刻度標(biāo)簽的替代(tickmode此時(shí)必須被設(shè)置為'array')
                            ticks = '',str型外驱,控制刻度標(biāo)簽的書寫位置育灸,'outside'表示在外側(cè)顯示,'inside'表示在內(nèi)側(cè)顯示昵宇,''表示不顯示
                            tickfont = dirt(),字典型磅崭,同前面所有字典型字體控制參數(shù),用于對(duì)刻度標(biāo)簽進(jìn)行單獨(dú)控制
                            tickangle = 12,#int型趟薄,設(shè)置刻度標(biāo)簽的旋轉(zhuǎn)角度
                            showgrid = Ture,#bool型,控制是否繪制出該坐標(biāo)軸上的直線部分
                            ), #如果要設(shè)置第二坐標(biāo)則使用xaxis2 = dict()      
                showlegend = True,#bool型典徊,控制是否有圖例
                legend = dict(
                                x = 1,#int,圖例位置的x值
                                y = 2,#int,圖例位置的y值
                                font = dict(),#字典型杭煎,與前面一樣
                                orientation = '',str,設(shè)置圖例各元素的堆疊方向,'v'表示豎直卒落,'h'表示水平堆疊
                            )            
                )

annotations:給圖表加上注釋

  • 主要是給數(shù)據(jù)加上標(biāo)簽羡铲,trace中的txet是也是給數(shù)據(jù)加上標(biāo)簽,但是這個(gè)標(biāo)簽只有你鼠標(biāo)放在相應(yīng)的點(diǎn)上才會(huì)有儡毕,不會(huì)像Excel中顯性的顯示也切。
  • 一般注釋都要放在列表中,每一個(gè)注釋都是有一個(gè)字典組成腰湾,所以要注釋多個(gè)點(diǎn)時(shí)雷恃,最好寫循環(huán),然后使用layout['annotations'] = annotations费坊,添加到layout中
annotations = [dict(x = 12,#數(shù)值倒槐,注釋位置x值
                    y = 13,#數(shù)值,注釋位置y值
                    text = '',str,注釋的值
                    font = dict(),#與前面一樣
                    showarrow = False,#bool附井,注釋的箭頭是否顯示
                    )]

第三步:fig:整合圖和圖層

fig = go.Figure(data = data ,layout = layout)
plotly.offline.ipolt(
                    fig,#fig或者是data
                    show_link = True,#bool,是否顯示鏈接讨越,圖右下角
                    link_text = '',#str,鏈接的名字
                    filename = '',#str,文件夾的名字
                    image = '',#str,圖片的類型'None'|'png' |'jpeg' |'svg' |'webp'
                    image_height = 32,#數(shù)值,圖片的高度
                    image_width = 22 ,#數(shù)值永毅,圖片的寬度
                    )

結(jié)束語

如果我不能讓您看懂把跨,那是我的問題,如果有疑問可以關(guān)注我沼死,然后私聊我着逐,我會(huì)盡最大的努力幫助你

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子滨嘱,更是在濱河造成了極大的恐慌峰鄙,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件太雨,死亡現(xiàn)場(chǎng)離奇詭異吟榴,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)囊扳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門吩翻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人锥咸,你說我怎么就攤上這事狭瞎。” “怎么了搏予?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵熊锭,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我雪侥,道長(zhǎng)碗殷,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任速缨,我火速辦了婚禮锌妻,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘旬牲。我一直安慰自己仿粹,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布原茅。 她就那樣靜靜地躺著吭历,像睡著了一般。 火紅的嫁衣襯著肌膚如雪擂橘。 梳的紋絲不亂的頭發(fā)上毒涧,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音贝室,去河邊找鬼契讲。 笑死,一個(gè)胖子當(dāng)著我的面吹牛滑频,可吹牛的內(nèi)容都是我干的捡偏。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼峡迷,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼银伟!你這毒婦竟也來了你虹?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤彤避,失蹤者是張志新(化名)和其女友劉穎傅物,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體琉预,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡董饰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了圆米。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片卒暂。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖娄帖,靈堂內(nèi)的尸體忽然破棺而出也祠,到底是詐尸還是另有隱情,我是刑警寧澤近速,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布诈嘿,位于F島的核電站,受9級(jí)特大地震影響削葱,放射性物質(zhì)發(fā)生泄漏奖亚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一佩耳、第九天 我趴在偏房一處隱蔽的房頂上張望遂蛀。 院中可真熱鬧谭跨,春花似錦干厚、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至谆扎,卻和暖如春挂捅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背堂湖。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來泰國(guó)打工闲先, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人无蜂。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓伺糠,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親斥季。 傳聞我的和親對(duì)象是個(gè)殘疾皇子训桶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344