2015-12-21 33 views
1

下面是一個簡圖的示例,其中存在具有長標籤的分類軸。分類軸標籤中的線條斷裂,散景圖

from bokeh.plotting import figure, show 

x_labs = [ 
    "Long Tick Label That Needs Line Breaks", 
    "Longer Tick Label That Needs Line Breaks", 
    "Even Longer Tick Label That Needs Line Breaks" 
    ] 
y_labs = ["foo", "bar", "baz"] 

x = [x_lab for __ in range(len(x_labs)) for x_lab in x_labs] 
y = ["foo", "foo", "foo", "bar", "bar", "bar", "baz", "baz", "baz"] 

colors = [ 
    "#0B486B", "#79BD9A", "#CFF09E", 
    "#79BD9A", "#0B486B", "#79BD9A", 
    "#CFF09E", "#79BD9A", "#0B486B" 
    ] 

p = figure(x_range=x_labs, y_range=y_labs) 
p.rect(x, y, color=colors, width=1, height=1) 
show(p) 

x軸標籤重疊,所以我想插入換行符。我無法弄清楚如何做到這一點。我曾嘗試在單詞之間添加'\n','\\n','<br>',但這種方式沒有奏效。

我不希望將標籤更改爲較短的字符串,增加字形大小,旋轉軸標籤或使用其他繪圖軟件包。所以,我真的只想知道我是否可以在散景中添加換行符到刻度線標籤。

我使用的是散景版本0.10.0。

非常感謝。

+0

你對解決這個任何更新來表示?我已嘗試\ n,\ r \ n,
以打破標籤和標題,但沒有成功。 –

回答

0

在DOS下一個換行符爲基礎的系統爲ASCII 13,10

這可以通過序列\r\n

+0

這不起作用。我將第一個滴答標籤從「需要換行的長標籤」改爲「長標籤\ r \ n需要換行」,並且不會導致圖中出現換行符(事實上,添加'\ r \ n'似乎只增加了額外的空間)。此外,我在一個Unix系統上,我不知道這是相關的,因爲散景圖是HTML文件並在瀏覽器中呈現。 – cpsempek

+0

@cpsempek對不起,那麼它似乎
會更好。在'r'之後和右大括號之後用空格嘗試。 – Grantly

+0

我掃描了參考文獻http://bokeh.pydata.org/en/0.10.0/docs/reference.html,也許它還不支持(尚未公開)...似乎很奇怪這樣一個強大的庫 – Grantly