2014-11-26 5 views
8

Я работаю на (0.6.1) учебнике бока и пытается отключить засечки и этикетки в одном из упражнений участков, the scatter plot:Выключения отметок в Bokeh

from __future__ import division 

import numpy as np 
from six.moves import zip 
from bokeh.plotting import * 
from bokeh.objects import Range1d 

output_file("scatter.html") 

figure() 

N = 4000 

x = np.random.random(size=N) * 100 
y = np.random.random(size=N) * 100 
radii = np.random.random(size=N) * 1.5 
colors = [ 
    "#%02x%02x%02x" % (r, g, 150) 
    for r, g in zip(np.floor(50+2*x), np.floor(30+2*y)) 
] 

circle(x, y, radius=radii, 
     fill_color=colors, fill_alpha=0.6, 
     line_color=None, Title="Colorful Scatter") 

grid().grid_line_color = None 
axis().axis_line_color = None 

# QUESTION PART 1: Is this the right way to turn off tick labels? 
axis().major_label_text_font_size = '0pt' 
# QUESTION PART 2: ...and how to turn off tick marks also? 

show() # open a browser 

мне удалось чтобы отключить отметки тика, но при поиске документов и поисковых запросов не было обнаружено заклинаний, необходимых для отключения меток.

Также я не уверен, что установка axis().major_label_text_font_size на 0pt - это правильный способ отключить тик-этикетки или если это kludge. Ничто другое не сработало.

Я пропустил что-то очевидное?

ответ

7

Этот ответ является обновление для более поздних 0,12 .4 версия Bokeh. Для получения дополнительной информации эти команды взяты с страницы Styling Visual AttributesBokeh documentation.

Чтобы отключить главные и второстепенные клещ знаки установить свой цвет на None:

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

p.xaxis.major_tick_line_color = None # turn off x-axis major ticks 
p.xaxis.minor_tick_line_color = None # turn off x-axis minor ticks 

p.yaxis.major_tick_line_color = None # turn off y-axis major ticks 
p.yaxis.minor_tick_line_color = None # turn off y-axis minor ticks 

Чтобы отключить клещ этикетки установить размер шрифта '0pt':

p.xaxis.major_label_text_font_size = '0pt' # turn off x-axis tick labels 
p.yaxis.major_label_text_font_size = '0pt' # turn off y-axis tick labels 

Аналогичный результат может достигается путем установки цвета шрифта на «Нет», при этом недостаток в том, что пространство сохраняется для ярлыков меток.

p.xaxis.major_label_text_color = None # turn off x-axis tick labels leaving space 
p.yaxis.major_label_text_color = None # turn off y-axis tick labels leaving space 

Этот фрагмент кода иллюстрирует удаление как крупные и мелкие клеща линии, а также клеща этикетки.

import bokeh.io 
import bokeh.plotting 
import bokeh.layouts 
bokeh.io.output_file('remove_tick_marks.html') 

p0 = bokeh.plotting.figure(plot_width=200, plot_height=200, 
          x_axis_label='x', y_axis_label='y', 
          title='original') 
p0.circle([1,2,3,4,5], [2,5,8,2,7], size=10) 

p1 = bokeh.plotting.figure(plot_width=200, plot_height=200, 
          x_axis_label='x', y_axis_label='y', 
          title='remove tick marks') 
p1.circle([1,2,3,4,5], [2,5,8,2,7], size=10) 
p1.xaxis.major_tick_line_color = None # turn off x-axis major ticks 
p1.xaxis.minor_tick_line_color = None # turn off x-axis minor ticks 
p1.yaxis.major_tick_line_color = None # turn off y-axis major ticks 
p1.yaxis.minor_tick_line_color = None # turn off y-axis minor ticks 

p2 = bokeh.plotting.figure(plot_width=200, plot_height=200, 
          x_axis_label='x', y_axis_label='y', 
          title='remove tick labels') 
p2.circle([1,2,3,4,5], [2,5,8,2,7], size=10) 
p2.xaxis.major_tick_line_color = None # turn off x-axis major ticks 
p2.xaxis.minor_tick_line_color = None # turn off x-axis minor ticks 
p2.yaxis.major_tick_line_color = None # turn off y-axis major ticks 
p2.yaxis.minor_tick_line_color = None # turn off y-axis minor ticks 
p2.xaxis.major_label_text_font_size = '0pt' # preferred method for removing tick labels 
p2.yaxis.major_label_text_font_size = '0pt' # preferred method for removing tick labels 

p3 = bokeh.plotting.figure(plot_width=200, plot_height=200, 
          x_axis_label='x', y_axis_label='y', 
          title='notice extra space') 
p3.circle([1,2,3,4,5], [2,5,8,2,7], size=10) 
p3.xaxis.major_tick_line_color = None # turn off x-axis major ticks 
p3.xaxis.minor_tick_line_color = None # turn off x-axis minor ticks 
p3.yaxis.major_tick_line_color = None # turn off y-axis major ticks 
p3.yaxis.minor_tick_line_color = None # turn off y-axis minor ticks 
p3.xaxis.major_label_text_color = None #note that this leaves space between the axis and the axis label 
p3.yaxis.major_label_text_color = None #note that this leaves space between the axis and the axis label 

grid = bokeh.layouts.gridplot([[p0, p1, p2, p3]]) 
bokeh.io.show(grid) 

enter image description here

6

Я не уверен, что отсутствие ответа более чем на неделю происходит из-за людей, которые этого не знают, или потому, что вопрос игнорируется как слишком очевидный.

В любом случае, в надежде, что другие могут оказаться полезными, я отправляю этот ответ. Я нашел способ сделать это, что кажется, так много, как взломать, что я только размещение его в надежде, что кто-то улучшить на нем ...

from __future__ import division 

import numpy as np 
from six.moves import zip 
from bokeh.plotting import * 

output_file("scatter.html") 

figure() 

N = 4000 

x = np.random.random(size=N) * 100 
y = np.random.random(size=N) * 100 
radii = np.random.random(size=N) * 1.5 
colors = ["#%02x%02x%02x" % (r, g, 150) 
      for r, g in zip(np.floor(50+2*x), np.floor(30+2*y))] 

circle(x, y, radius=radii, 
     fill_color=colors, fill_alpha=0.6, 
     line_color=None, Title="Colorful Scatter") 

grid().grid_line_color = None 
axis().axis_line_color = None 
curplot().outline_line_color = None 

# Turn off tick labels 
axis().major_label_text_font_size = '0pt' 
# Turn off tick marks 
axis().major_tick_line_color = None # turn off major ticks 
axis()[0].ticker.num_minor_ticks = 0 # turn off minor ticks 
axis()[1].ticker.num_minor_ticks = 0 

show() # open a browser 
+0

Нет, это, вероятно, в настоящее время лучший способ сделать это. Вероятно, мы могли бы добавить другое ключевое слово arg, чтобы «фигурировать», но его балансирующий акт, добавляя удобство, но избегая «суп параметра». Если у вас есть предложения по улучшению написания и т. Д., Я рекомендую вам отправить их на трекер Bokeh GH, такой ввод всегда приветствуется. – bigreddot

+0

Несмотря на то, что вы также можете установить 'major_label_text_font_color = None' и иметь эту работу также для удаления основных меток. Я думаю, что это мое предпочтение в отношении установки размера шрифта, но я соглашусь, что нет большой разницы. – bigreddot

+0

Спасибо @bigreddot, это обнадеживает, чтобы увидеть, что я не пропускаю очевидное. Я пришел из-за большого использования ggplot2 и ожидал найти простой коммутатор, как в http://www.cookbook-r.com/Graphs/Axes_(ggplot2)/, но я доволен этим промежуточным решением, и я рассмотрю вопрос о выпуске если у меня есть полезное предложение сделать. – gauden

Смежные вопросы