二、Bokeh風(fēng)格與主題

開始先一波標(biāo)準(zhǔn)導(dǎo)入

from bokeh.io import output_notebook, show
from bokeh.plotting import figure   
output_notebook()

畫布設(shè)置

# create a new plot with a title
p = figure(plot_width=400, plot_height=400)
p.outline_line_width = 7
p.outline_line_alpha = 0.3
p.outline_line_color = "navy"

p.circle([1,2,3,4,5], [2,5,8,2,7], size=10)

show(p)
bokeh_plot (5).png

針對(duì)畫布設(shè)置可以通過屬性.outline_line_width, .outline_line_alpha, .outline_line_color 等進(jìn)行配置莫鸭。
類似的還有.background_fill_color, .border_fill_color 等等
總而言之员舵, 針對(duì)畫布的設(shè)置, 都通過figure下的參數(shù)進(jìn)行配置徘钥。

標(biāo)記符號(hào)設(shè)置

p = figure(plot_width=400, plot_height=400)

# keep a reference to the returned GlyphRenderer
r = p.circle([1,2,3,4,5], [2,5,8,2,7])

r.glyph.size = 50
r.glyph.fill_alpha = 0.2
r.glyph.line_color = "firebrick"
r.glyph.line_dash = [5, 1]
r.glyph.line_width = 2

show(p)
bokeh_plot (6).png

針對(duì)標(biāo)記的設(shè)置变骡, 就是配置當(dāng)前標(biāo)記下的.glyph對(duì)象下的屬性, 如上例子配置標(biāo)記的大小就使用r.glyph.size = 50; 配置標(biāo)記邊緣虛線樣式就使用r.glyph.line_dash = [5, 1], 意思是每6個(gè)單位的邊緣線离赫, 有一個(gè)單位為透明的。
總而言之塌碌, 與畫布設(shè)置如出一轍渊胸, 設(shè)置標(biāo)記就使用標(biāo)記下的配置項(xiàng)。

選擇與非選擇下的動(dòng)態(tài)展示

p = figure(plot_width=400, plot_height=400, tools="tap", title="Select a circle")
renderer = p.circle([1, 2, 3, 4, 5], [2, 5, 8, 2, 7], size=50,

                    # set visual properties for selected glyphs
                    selection_color="firebrick",

                    # set visual properties for non-selected glyphs
                    nonselection_fill_alpha=0.2,
                    nonselection_fill_color="grey",
                    nonselection_line_color="firebrick",
                    nonselection_line_alpha=1.0)

show(p)
selection.PNG

既然我們選擇的是圖片上的標(biāo)記符號(hào)台妆, 所以隨著選擇的改變翎猛, 展示的變化也是標(biāo)記符號(hào)本身。
按照一貫的套路接剩, 這種配置也應(yīng)該配入“標(biāo)記符號(hào)”切厘。
上一段代碼展示的配置方法是在標(biāo)記符號(hào)初始化的時(shí)候, 以參數(shù)的形式進(jìn)行配置懊缺。
我們也可以在初始化之后疫稿, 再配置, 如下一段代碼:

from bokeh.models.glyphs import Circle, Square
 
p = figure(plot_width=400, plot_height=400, tools="tap", title="Select a circle")
renderer = p.circle([1, 2, 3, 4, 5], [2, 5, 8, 2, 7], size=50)
renderer.selection_glyph = Circle(fill_alpha = 1, fill_color="yellow", line_color = None)
renderer.nonselection_glyph = Circle(fill_alpha = 0.2, fill_color = "green", line_color = "yellow")
show(p)
selection_1.PNG

懸停動(dòng)態(tài)響應(yīng)

from bokeh.models.tools import HoverTool
from bokeh.sampledata.glucose import data

subset = data.loc['2010-10-06']

x, y = subset.index.to_series(), subset['glucose']

# Basic plot setup
p = figure(width=600, height=300, x_axis_type="datetime", title='Hover over points')

p.line(x, y, line_dash="4 4", line_width=1, color='gray')

cr = p.circle(x, y, size=20,
              fill_color="grey", hover_fill_color="firebrick",
              fill_alpha=0.05, hover_alpha=0.3,
              line_color=None, hover_line_color="white")

p.add_tools(HoverTool(tooltips=None, renderers=[cr], mode='hline'))

show(p)  
Hover.png

上面案例的本質(zhì)是:
1鹃两、畫布準(zhǔn)備與之前的樣例一樣
2遗座、作圖時(shí), 首先畫一條虛線俊扳, 固定的途蒋, 沒有動(dòng)態(tài)反應(yīng)
3、在與虛線相同的位置上馋记, 再畫一層很透明的圓形標(biāo)記号坡。 這層圓形標(biāo)記會(huì)對(duì)懸浮指針作出反應(yīng)。

對(duì)懸停起反應(yīng)的標(biāo)記符號(hào)為:

cr = p.circle(x, y, size=20,
              fill_color="grey", hover_fill_color="firebrick",
              fill_alpha=0.05, hover_alpha=0.3,
              line_color=None, hover_line_color="white")

左側(cè)沒有hover開頭的配置項(xiàng)即普通狀態(tài)下的樣式抗果, 右側(cè)hover開頭的配置項(xiàng)即被懸停指定標(biāo)記所展現(xiàn)的樣式。

坐標(biāo)軸

坐標(biāo)軸的樣式設(shè)計(jì)奸晴, 也是在配置畫布的時(shí)候進(jìn)行配置冤馏。 比如:

p.xaxis.axis_label = "Temperature"
p.axis.major_label_text_color = "orange"

坐標(biāo)軸參數(shù)

針對(duì)坐標(biāo)軸的參數(shù)很多,不過通過配置項(xiàng)的前綴寄啼, 我們可以將他們大致歸類:

  • axis 坐標(biāo)軸(線)配置項(xiàng)逮光, 例如: axis_line_width
  • axis_label 坐標(biāo)軸(文字)配置項(xiàng)代箭, 例如: axis_label_text_color, axis_label_standoff
  • major_label 坐標(biāo)軸(文字)配置項(xiàng), 例如: major_label_text_font_size, major_label_orientation
  • major_tick 坐標(biāo)軸(線)配置項(xiàng)涕刚, 例如: major_tick_line_dash, major_tick_in, major_tick_out
  • minor_tick 坐標(biāo)軸(線)配置項(xiàng)嗡综, 例如: minor_tick_line_width, minor_tick_in, minor_tick_out
from math import pi

p = figure(plot_width=400, plot_height=400)
p.x([1,2,3,4,5], [2,5,8,2,7], size=10, line_width=2)

p.xaxis.major_label_orientation = pi/4
p.yaxis.major_label_orientation = "vertical"

show(p)
bokeh_plot (7).png
p = figure(plot_width=400, plot_height=400)
p.asterisk([1,2,3,4,5], [2,5,8,2,7], size=12, color="olive")

# change just some things about the x-axes
p.xaxis.axis_label = "Temp"
p.xaxis.axis_line_width = 3
p.xaxis.axis_line_color = "red"

# change just some things about the y-axes
p.yaxis.axis_label = "Pressure"
p.yaxis.major_label_text_color = "orange"
p.yaxis.major_label_orientation = "vertical"

# change things on all axes
p.axis.minor_tick_in = -3
p.axis.minor_tick_out = 6

show(p)
bokeh_plot (8).png

總而言之, 以p.axis開頭的配置杜漠, 是針對(duì)橫豎坐標(biāo)同時(shí)作用的配置极景; 以p.xaxis開頭的配置都是針對(duì)x軸進(jìn)行的配置;同樣的驾茴, 以p.yaxis開頭的配置都是針對(duì)y軸的配置盼樟。
再之后的配置項(xiàng),以axis開頭的都是針對(duì)坐標(biāo)軸本身的配置锈至。 比如p.xaxis.axis_labelx軸的標(biāo)題晨缴。帶有l(wèi)abel的標(biāo)簽是針對(duì)坐標(biāo)軸刻度的配置項(xiàng),比如p.yaxis.major_label_orientationy坐標(biāo)刻度的朝向峡捡。

刻度配置項(xiàng)

from math import pi
from bokeh.sampledata.glucose import data

week = data.loc['2010-10-01':'2010-10-08']

p = figure(x_axis_type="datetime", title="Glocose Range", plot_height=350, plot_width=800)
p.xaxis.formatter.days = '%m/%d/%Y'
p.xaxis.major_label_orientation = pi/3

p.line(week.index, week.glucose)

show(p)
bokeh_plot (9).png

上面列子可以看出击碗, 時(shí)間戳?xí)r間默認(rèn)為月份/日期,但我們可以通過配置格式p.xaxis.formatter.days = '%m/%d/%Y'使得x軸的時(shí)間顯示為月份/日期/年份们拙。 同時(shí)由于配置項(xiàng)p.xaxis.major_label_orientation = pi/3使得時(shí)間刻度的顯示傾斜1/3個(gè)π的角度稍途。

from bokeh.models import NumeralTickFormatter

p = figure(plot_height=300, plot_width=800)
p.circle([1,2,3,4,5], [2,5,8,2,7], size=10)

p.xaxis.formatter = NumeralTickFormatter(format="0.0%")
p.yaxis.formatter = NumeralTickFormatter(format="$0.00")

show(p)
bokeh_plot (10).png

上例子中, x, y 軸的刻度都是數(shù)字睛竣, 通過NumeralTickFormatter定義其格式晰房。

網(wǎng)格的設(shè)置

p = figure(plot_width=400, plot_height=400)
p.circle([1,2,3,4,5], [2,5,8,2,7], size=10)

# change just some things about the x-grid
p.xgrid.grid_line_color = None

# change just some things about the y-grid
p.ygrid.grid_line_alpha = 0.5
p.ygrid.grid_line_dash = [6, 4]

show(p)
bokeh_plot (11).png

p.xgrid.grid_line_color = None 意味著x軸刻度延長(zhǎng)方向、豎向網(wǎng)格線不顯示
p.ygrid.grid_line_alpha = 0.5 意味著y軸刻度延長(zhǎng)方向射沟,橫向網(wǎng)格線半透明
p.ygrid.grid_line_dash = [6, 4] 意味著y軸刻度延長(zhǎng)方向殊者,橫向網(wǎng)格線程虛線形式

p = figure(plot_width=400, plot_height=400)
p.circle([1,2,3,4,5], [2,5,8,2,7], size=10)

# change just some things about the x-grid
p.xgrid.grid_line_color = None

# change just some things about the y-grid
p.ygrid.band_fill_alpha = 0.1
p.ygrid.band_fill_color = "navy"

show(p)  
bokeh_plot (12).png

p.xgrid.grid_line_color = None x軸刻度延長(zhǎng)線、豎向網(wǎng)格線不顯示
p.ygrid.band_fill_alpha = 0.1 y軸刻度延長(zhǎng)線验夯、向橫向網(wǎng)格填充顏色猖吴,0.1的透明度
p.ygrid.band_fill_color = "navy" 填充的顏色為深藍(lán)色

下一篇: 三、數(shù)據(jù)源的定義與轉(zhuǎn)化

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末挥转,一起剝皮案震驚了整個(gè)濱河市海蔽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌绑谣,老刑警劉巖党窜,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異借宵,居然都是意外死亡幌衣,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來豁护,“玉大人哼凯,你說我怎么就攤上這事〕铮” “怎么了断部?”我有些...
    開封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)班缎。 經(jīng)常有香客問我蝴光,道長(zhǎng),這世上最難降的妖魔是什么吝梅? 我笑而不...
    開封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任虱疏,我火速辦了婚禮,結(jié)果婚禮上苏携,老公的妹妹穿的比我還像新娘做瞪。我一直安慰自己,他們只是感情好右冻,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開白布装蓬。 她就那樣靜靜地躺著,像睡著了一般纱扭。 火紅的嫁衣襯著肌膚如雪牍帚。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天乳蛾,我揣著相機(jī)與錄音暗赶,去河邊找鬼。 笑死肃叶,一個(gè)胖子當(dāng)著我的面吹牛蹂随,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播因惭,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼岳锁,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了蹦魔?” 一聲冷哼從身側(cè)響起激率,我...
    開封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎勿决,沒想到半個(gè)月后乒躺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡低缩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年嘉冒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡健爬,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出么介,到底是詐尸還是另有隱情娜遵,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布壤短,位于F島的核電站设拟,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏久脯。R本人自食惡果不足惜纳胧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望帘撰。 院中可真熱鬧跑慕,春花似錦、人聲如沸摧找。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蹬耘。三九已至芝雪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間综苔,已是汗流浹背惩系。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留如筛,地道東北人堡牡。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像妙黍,于是被迫代替她去往敵國(guó)和親悴侵。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • import包: matplotlib包含有很多的模塊拭嫁,在具體使用的時(shí)候根據(jù)需要導(dǎo)入依賴的模塊可免。通過將matplo...
    豐年的博客閱讀 588評(píng)論 0 1
  • 本文主要針對(duì)plotly的參數(shù)含義進(jìn)行說明,隨著plotly版本的迭代更新做粤,部分參數(shù)的用法會(huì)有細(xì)微變化浇借,具體參加官...
    惑也閱讀 49,830評(píng)論 0 34
  • 一、概述 深度學(xué)習(xí)的一個(gè)重要手段是訓(xùn)練數(shù)據(jù)和訓(xùn)練過程的可視化怕品,因此妇垢,我們關(guān)于深度學(xué)習(xí)的系列介紹文章就從Matplo...
    aoqingy閱讀 6,154評(píng)論 0 24
  • 一、plt: matplotlib.pyplot 整個(gè)圖像為一個(gè)figure對(duì)象,在figure對(duì)象中可以包含一個(gè)...
    DDuncan閱讀 755評(píng)論 0 0
  • 夜鶯2517閱讀 127,720評(píng)論 1 9