diff --git a/lightweight_charts/abstract.py b/lightweight_charts/abstract.py index 0091d3f2..1e7ea6d0 100644 --- a/lightweight_charts/abstract.py +++ b/lightweight_charts/abstract.py @@ -198,9 +198,13 @@ def _df_datetime_format(self, df: pd.DataFrame, exclude_lowercase=None): df = df.copy() df.columns = self._format_labels(df, df.columns, df.index, exclude_lowercase) self._set_interval(df) + if not pd.api.types.is_datetime64_any_dtype(df['time']): df['time'] = pd.to_datetime(df['time']) - df['time'] = df['time'].astype('int64') // 10 ** 9 + + df['time'] = pd.to_datetime(df['time']).dt.tz_localize(None).astype('datetime64[ns]') + + df['time'] = df['time'].astype('int64') // 10**9 return df def _series_datetime_format(self, series: pd.Series, exclude_lowercase=None): diff --git a/lightweight_charts/widgets.py b/lightweight_charts/widgets.py index c347c45d..10bf72f5 100644 --- a/lightweight_charts/widgets.py +++ b/lightweight_charts/widgets.py @@ -164,7 +164,7 @@ def _load(self): class JupyterChart(StaticLWC): - def __init__(self, width: int = 800, height=350, inner_width=1, inner_height=1, scale_candles_only: bool = False, toolbox: bool = False): + def __init__(self, width: int = 800, height=350, inner_width: float=1.0, inner_height: float=1.0, scale_candles_only: bool = False, toolbox: bool = False): super().__init__(width, height, inner_width, inner_height, scale_candles_only, toolbox, False) self.run_script(f''' @@ -177,7 +177,7 @@ def __init__(self, width: int = 800, height=350, inner_width=1, inner_height=1, document.getElementById('container').style.width = '{self.width}px' document.getElementById('container').style.height = '100%' ''') - self.run_script(f'{self.id}.chart.resize({width}, {height})') + self.run_script(f'{self.id}.chart.resize({width * inner_width}, {height * inner_height})') def _load(self): if HTML is None: