#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