Только что создал этот класс для печати некоторых интерактивных диаграмм, но я получаю разные ошибки. Самый последний:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-29-ee093d057bde> in <module>
25
26 if __name__ == '__main__':
---> 27 ChartsPropylene()
<ipython-input-29-ee093d057bde> in __init__(self)
1 class ChartsPropylene():
2 def __init__(self):
----> 3 self.start_date=dt(2008, 4, 24)
4 self.end_date=dt(2020, 5, 24)
5 self.dates=pd.date_range(self.start_date, self.end_date, freq='D')
код класса, который я создал, следующий:
import sys, os
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
import ipywidgets as widgets
from ipywidgets import interact
import cufflinks as cf
import datetime as dt
from IPython import display
class ChartsPropylene():
def __init__(self):
self.start_date=dt(2008, 4, 24)
self.end_date=dt(2020, 5, 24)
self.dates=pd.date_range(self.start_date, self.end_date, freq='D')
self.options=[(date.strftime(' %d %b %y '), date) for date in self.dates]
self.index=(0, len(self.options)-1)
self.selection_range_slider=widgets.SelectionRangeSlider(options=self.options, index=self.index, description='Dates', orientation='horizontal', layout = {'width':'600px'})
def __printChart__(self):
display(self.selection_range_slider)
x=self.selection_range_slider.get_interact_value()[0].toordinal()
y=self.selection_range_slider.get_interact_value()[1].toordinal()
abs1=abs(y-x)
plt.figure(figsize=(18, 10))
sns.set(style = "darkgrid")
palette2=sns.color_palette("mako_r", 3)
sns.lineplot(x = "Date", y = "Value", hue='Std_Type', style='Value_Type', sizes=(.25, 2.5), ci='sd', estimator=None, lw=1, palette=palette2, data=tbl4)
rectangle1=plt.Rectangle(xy=(x, 500), width=abs1, height=500, linewidth=2, color='red', facecolor='blue', joinstyle='round', alpha=0.1, fill=True)
rectangle2=plt.Rectangle(xy=(x, 500), width=abs1, height=500, linewidth=2, color='red', facecolor='blue', joinstyle='round', alpha=1, fill=False)
plt.gca().add_patch(rectangle1)
plt.gca().add_patch(rectangle2)
plot.show(10)
Что я сделал не так?
Я попытался импортировать класс и запустить, но появилась та же ошибка.
datetime (dt
в вашем коде) не вызывается, это модуль.
Вы имели в виду dt.date(2008, 4, 24)
или, возможно, import datetime.date as dt
(первое имеет больше смысла, если вы назовете его dt, я думаю..). datetime.date
— вызываемый класс внутри datetime
.
В вашем вопросе не упоминается, но стоит упомянуть (чтобы не путать его на более позднем этапе), это datetime.datetime
, еще один вызываемый класс внутри datetime
.
Не придумывайте свои
__X__
имена; они зарезервированы Python.