Как использовать функцию def для создания нескольких графиков боке

#python #function #bokeh

#python #функция #боке

Вопрос:

кто-нибудь знает, как использовать ‘def’ в python для создания нескольких графиков? Мой код приведен ниже, и в нем около 20 графиков, которые я хочу включить во вкладки. Буду признателен, если вы поможете ниже по коду, поскольку я не очень хорошо разбираюсь в использовании функции def…

 import pandas as pd
from math import pi
from bokeh.plotting import figure,output_file,show
from bokeh.models import ColumnDataSource,NumeralTickFormatter,HoverTool,DaysTicker,DatetimeTickFormatter,TickFormatter,Panel,Tabs
from bokeh.layouts import column,row

#1
# intialise data of lists. 
data1 = {'Date':['2020-10-10', '2020-10-09', '2020-10-08', '2020-10-07', '2020-10-06', '2020-10-05', '2020-10-04', '2020-10-03'], 
        'Close':[20, 21, 19, 18, 30, 10, 15, 18 ] } 

# Create DataFrame 
df1 = pd.DataFrame(data1) 

df1['Date_time']   = pd.to_datetime(df1['Date'], errors='coerce')

p1 = figure(x_axis_type="datetime")
p1.xaxis.major_label_orientation = pi/2
p1.grid.grid_line_alpha=0.8
p1.xaxis[0].ticker.desired_num_ticks = 12
p1.xaxis.formatter=DatetimeTickFormatter(days=['%Y-%m-%d'])
p1.line(df1.Date_time, df1.Close)
tab1 = Panel(child=p1, title="1")


#2
# intialise data of lists. 
data2 = {'Date':['2020-10-10', '2020-10-09', '2020-10-08', '2020-10-07', '2020-10-06', '2020-10-05', '2020-10-04', '2020-10-03'], 
        'Close':[200, 250, 190, 180, 100, 100, 150, 108 ] } 

# Create DataFrame 
df2 = pd.DataFrame(data2) 

df2['Date_time']   = pd.to_datetime(df2['Date'], errors='coerce')

p2 = figure(x_axis_type="datetime")
p2.xaxis.major_label_orientation = pi/2
p2.grid.grid_line_alpha=0.8
p2.xaxis[0].ticker.desired_num_ticks = 12
p2.xaxis.formatter=DatetimeTickFormatter(days=['%Y-%m-%d'])
p2.line(df2.Date_time, df2.Close)
tab2 = Panel(child=p2, title="2")


show(Tabs(tabs=[tab1, tab2]))
 

#Обновление для использования def

  • Я получил ошибку: имя ‘tab1’ не определено
  • Это правильный способ кодирования для использования def?
  • Можете ли вы помочь исправить это отсюда?

    график def (y, x, z):

       y['Date_time']   = pd.to_datetime(y['Date'], errors='coerce')
    
      p = figure(x_axis_type="datetime")
      p.line(y.Date_time, y.Close)
    
      z = Panel(child=p, title=x)
     

    график (df1,’1′,’tab1′)
    график (df2,’2′,’tab2′)

    показать(вкладки(вкладки = [tab1, tab2]))

Комментарии:

1. Вы вообще понимаете, как писать функцию?

2. Спасибо. Я вроде как понимаю структуру функции. Моя проблема в том, что я не могу присвоить имя переменной имени функции, верно?

3. Вот что такое аргумент в функции. Бит, который вы помещаете в скобки при вызове всех других функций и методов, которые вы вызываете в остальной части вашего кода.

Ответ №1:

Вы используете def для написания функций. Функции — это просто строки кода python, которым вы присвоили ярлык, чтобы вы могли их повторно использовать.

 def some_function(x, y):
    # your code here
 

Итак, вы просто пишете код, чтобы сделать это для одного графика, вкладываете все это вправо и присваиваете ему имя.

Комментарии:

1. Я пытаюсь использовать def, и у меня остаются ошибки, и это мой код ниже.

2. график def (x, y): y[‘Date_time’] = pd.to_datetime(y[‘Date’], ошибки =’принудительное’) p = рисунок (x_axis_type=»datetime») p.xaxis.major_label_orientation = pi/2 п.grid.grid_line_alpha=0,8 п.xaxis[0].ticker.desired_num_ticks = 12 p.xaxis.formatter=DatetimeTickFormatter(days=[‘%Y-%m-%d’]) p.line(y.Date_time, y.Close) вкладка str(x) = Панель (дочерний элемент = p, заголовок =str(x)) график (1, df1) график (2, df2)

3. Привет, спасибо, что изучили это. извините за код. Позвольте мне опубликовать позже

4. Привет, я снова публикую код. Можете ли вы помочь взглянуть на это? Кажется, что часть на графиках не выполняется. Tks