Jan-19-2020, 01:30 PM
Hello !
I need some help with my script in Python. I've two questions :
First question :
I'm creating a CGI which allow to display graph from some data.
The datas looks like :
2020-01-13-00-00,384.00,350.00
2020-01-13-06-00,384.00,350.00
2020-01-13-12-00,384.00,350.00
2020-01-13-18-00,384.00,350.00
2020-01-14-00-00,384.00,350.00
2020-01-14-06-00,384.00,350.00
2020-01-14-12-00,384.00,350.00
I use the ipywidgets, pandas and plotly.express librarys in order to create a web page which will display a graph with two buttons : the first to display the graph and the second to display the graph with the trendline.
My script is :
![[Image: uc9s.png]](https://zupimages.net/up/20/03/uc9s.png)
The graph button is here in order to redisplay the original graph withtout the trendline. But when I press the Trend button, I've this error :
Second question :
I made an other python script and I've succeeded to export my interactif graph like that :
Thanks !
I need some help with my script in Python. I've two questions :
First question :
I'm creating a CGI which allow to display graph from some data.
The datas looks like :
2020-01-13-00-00,384.00,350.00
2020-01-13-06-00,384.00,350.00
2020-01-13-12-00,384.00,350.00
2020-01-13-18-00,384.00,350.00
2020-01-14-00-00,384.00,350.00
2020-01-14-06-00,384.00,350.00
2020-01-14-12-00,384.00,350.00
I use the ipywidgets, pandas and plotly.express librarys in order to create a web page which will display a graph with two buttons : the first to display the graph and the second to display the graph with the trendline.
My script is :
import ipywidgets as widgets
import pandas as pd
import plotly.express as px
import os
####### Button 1 ########
button = widgets.Button(description="graph")
display(button)
def graph():
df = pd.read_csv('/xxx/xxx/xxx/Test.txt')
df.head()
fig = px.line(df, x = 'Date', y ='Total Used', title='DF command graph')
fig.update_traces(mode='markers')
fig.show();
output = widgets.Output()
@output.capture()
def on_button_clicked(b):
graph();
button.on_click(on_button_clicked)
display(output)
####### Button 2 #########
button2 = widgets.Button(description='trend')
display(button2)
def trend():
df = pd.read_csv('/xxx/xxx/xxx/Test.txt')
df.head()
fig = px.scatter(float(df), x="Date", y="Total Used", trendline="ols")
fig.show()
output2 = widgets.Output()
@output2.capture()
def on_button2_clicked(b):
trend()
button2.on_click(on_button2_clicked)
display(output2)
graph()The first step ( displaying the grap ) works prefectly :![[Image: uc9s.png]](https://zupimages.net/up/20/03/uc9s.png)
The graph button is here in order to redisplay the original graph withtout the trendline. But when I press the Trend button, I've this error :
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
~/.local/lib/python3.6/site-packages/ipywidgets/widgets/widget_output.py in inner(*args, **kwargs)
101 self.clear_output(*clear_args, **clear_kwargs)
102 with self:
--> 103 return func(*args, **kwargs)
104 return inner
105 return capture_decorator
<ipython-input-17-8774359d7459> in on_button2_clicked(b)
41 @output2.capture()
42 def on_button2_clicked(b):
---> 43 trend()
44
45 button2.on_click(on_button2_clicked)
<ipython-input-17-8774359d7459> in trend()
34 df = pd.read_csv('/xxx/xxx/Desktop/Test.txt')
35 df.head()
---> 36 fig = px.scatter(float(df), x="Date", y="Total Used", trendline="ols")
37 fig.show()
38
TypeError: float() argument must be a string or a number, not 'DataFrame'I think this error appears because pandas doesn't understand the part of data : 2020-01-13-00-00But I don't understand how to fix it... Could you show me how to change that ?
Second question :
I made an other python script and I've succeeded to export my interactif graph like that :
import pandas as pd
import plotly.express as px
df = pd.read_csv('xxx/Test.txt')
df.head()
fig = px.line(df, x = 'Date', y ='Total Used', title='DF command graph')
fig.add_scatter(x=df['Date'], y=df['Free'])
fig.update_traces(mode='markers+lines')
fig.write_html("/xxx/xxx/xxx/file.html")
fig.show()There is a way to export my script with my two buttons like that ? I don't want to use jupyter notebook but I don't know if it's possible...Thanks !
