lightweight-charts-python
lightweight-charts-python copied to clipboard
Drawings deleting locally only
Expected Behavior
Drawings deleting locally only
when a drawing is rendered, and later removed or price updated it should be update on the drawing.json file as well
Current Behaviour
Any drawings on the chart will not be deleted or updated from drawings.json
https://github.com/user-attachments/assets/9ff33c99-c3c6-430d-9841-7c42cf1a4214
i am adding some data for testing data.csv
Reproducible Example
import pandas as pd
from lightweight_charts import Chart
def get_bar_data(symbol, timeframe):
if symbol not in ('AAPL', 'GOOGL', 'TSLA'):
print(f'No data for "{symbol}"')
return pd.DataFrame()
return pd.read_csv(f'bar_data/{symbol}_{timeframe}.csv')
def on_search(chart, searched_string):
new_data = get_bar_data(searched_string, chart.topbar['timeframe'].value)
if new_data.empty:
return
chart.topbar['symbol'].set(searched_string)
chart.set(new_data)
# Load the drawings saved under the symbol.
chart.toolbox.load_drawings(searched_string)
def on_timeframe_selection(chart):
new_data = get_bar_data(chart.topbar['symbol'].value, chart.topbar['timeframe'].value)
if new_data.empty:
return
# The symbol has not changed, so we want to re-render the drawings.
chart.set(new_data, keep_drawings=True)
if __name__ == '__main__':
chart = Chart(toolbox=True)
chart.legend(True)
chart.events.search += on_search
chart.topbar.textbox('symbol', 'TSLA')
chart.topbar.switcher(
'timeframe',
('1min', '5min', '30min'),
default='5min',
func=on_timeframe_selection
)
df = get_bar_data('TSLA', '5min')
chart.set(df)
# Imports the drawings saved in the JSON file.
chart.toolbox.import_drawings('drawings.json')
# Loads the drawings under the default symbol.
chart.toolbox.load_drawings(chart.topbar['symbol'].value)
# Saves drawings based on the symbol.
chart.toolbox.save_drawings_under(chart.topbar['symbol'])
chart.show(block=True)
# Exports the drawings to the JSON file upon close.
chart.toolbox.export_drawings('drawings.json')
Environment
- OS: Window 10
- name ='lightweight_charts',
version='2.0.1',
python='>=3.10',