diff --git a/README.md b/README.md
index b07eba89a3..d071d9c05b 100644
--- a/README.md
+++ b/README.md
@@ -128,7 +128,17 @@ import taipy as tp
import pandas as pd
from taipy import Config, Scope, Gui
-# Taipy Scenario & Data Management
+# Defining the helper functions
+
+# Callback definition - submits scenario with genre selection
+def on_genre_selected(state):
+ scenario.selected_genre_node.write(state.selected_genre)
+ tp.submit(scenario)
+ state.df = scenario.filtered_data.read()
+
+## Set initial value to Action
+def on_init(state):
+ on_genre_selected(state)
# Filtering function - task
def filter_genre(initial_dataset: pd.DataFrame, selected_genre):
@@ -136,42 +146,35 @@ def filter_genre(initial_dataset: pd.DataFrame, selected_genre):
filtered_data = filtered_dataset.nlargest(7, "Popularity %")
return filtered_data
-# Load the configuration made with Taipy Studio
-Config.load("config.toml")
-scenario_cfg = Config.scenarios["scenario"]
+# The main script
+if __name__ == "__main__":
+ # Taipy Scenario & Data Management
-# Start Taipy Core service
-tp.Core().run()
+ # Load the configuration made with Taipy Studio
+ Config.load("config.toml")
+ scenario_cfg = Config.scenarios["scenario"]
-# Create a scenario
-scenario = tp.create_scenario(scenario_cfg)
+ # Start Taipy Core service
+ tp.Core().run()
+ # Create a scenario
+ scenario = tp.create_scenario(scenario_cfg)
-# Taipy User Interface
-# Let's add a GUI to our Scenario Management for a full application
+ # Taipy User Interface
+ # Let's add a GUI to our Scenario Management for a full application
-# Callback definition - submits scenario with genre selection
-def on_genre_selected(state):
- scenario.selected_genre_node.write(state.selected_genre)
- tp.submit(scenario)
- state.df = scenario.filtered_data.read()
-
-# Get list of genres
-genres = [
- "Action", "Adventure", "Animation", "Children", "Comedy", "Fantasy", "IMAX"
- "Romance","Sci-FI", "Western", "Crime", "Mystery", "Drama", "Horror", "Thriller", "Film-Noir","War", "Musical", "Documentary"
+ # Get list of genres
+ genres = [
+ "Action", "Adventure", "Animation", "Children", "Comedy", "Fantasy", "IMAX"
+ "Romance","Sci-FI", "Western", "Crime", "Mystery", "Drama", "Horror", "Thriller", "Film-Noir","War", "Musical", "Documentary"
]
-# Initialization of variables
-df = pd.DataFrame(columns=["Title", "Popularity %"])
-selected_genre = "Action"
-
-## Set initial value to Action
-def on_init(state):
- on_genre_selected(state)
+ # Initialization of variables
+ df = pd.DataFrame(columns=["Title", "Popularity %"])
+ selected_genre = "Action"
-# User interface definition
-my_page = """
+ # User interface definition
+ my_page = """
# Film recommendation
## Choose your favorite genre
@@ -179,9 +182,9 @@ my_page = """
## Here are the top seven picks by popularity
<|{df}|chart|x=Title|y=Popularity %|type=bar|title=Film Popularity|>
-"""
+ """
-Gui(page=my_page).run()
+ Gui(page=my_page).run()
```
And the final result:
diff --git a/doc/gui/examples/broadcast.py b/doc/gui/examples/broadcast.py
index 32e8702a0e..71906cad3e 100644
--- a/doc/gui/examples/broadcast.py
+++ b/doc/gui/examples/broadcast.py
@@ -31,10 +31,6 @@
thread = None
thread_event = Event()
-button_texts = ["Start", "Stop"]
-# Text in the start/stop button (initially "Start")
-button_text = button_texts[0]
-
def count(event, gui):
while not event.is_set():
@@ -58,15 +54,21 @@ def start_or_stop(state: State):
state.assign("button_text", button_texts[1 if thread else 0])
-page = """# Broadcasting values
+if __name__ == "__main__":
+ button_texts = ["Start", "Stop"]
+ # Text in the start/stop button (initially "Start")
+ button_text = button_texts[0]
+
+ page = """
+# Broadcasting values
Counter: <|{counter}|>
Timer: <|{button_text}|button|on_action=start_or_stop|>
-"""
+ """
-# Declare "button_text" as a shared variable.
-# Assigning a value to a state's 'button_text' property is propagated to all clients
-Gui.add_shared_variable("button_text")
+ # Declare "button_text" as a shared variable.
+ # Assigning a value to a state's 'button_text' property is propagated to all clients
+ Gui.add_shared_variable("button_text")
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/broadcast_callback.py b/doc/gui/examples/broadcast_callback.py
index 83ca6a1721..ef9aab481d 100644
--- a/doc/gui/examples/broadcast_callback.py
+++ b/doc/gui/examples/broadcast_callback.py
@@ -23,9 +23,6 @@
from taipy.gui import Gui
-current_time = datetime.now()
-update = False
-
# Update the 'current_time' state variable if 'update' is True
def update_state(state, updated_time):
@@ -41,17 +38,21 @@ def update_time(gui):
sleep(1)
-page = """
+if __name__ == "__main__":
+ current_time = datetime.now()
+ update = False
+
+ page = """
Current time is: <|{current_time}|format=HH:mm:ss|>
Update: <|{update}|toggle|>
-"""
+ """
-gui = Gui(page)
+ gui = Gui(page)
-# Run thread that regularly updates the current time
-thread = Thread(target=update_time, args=[gui], name="clock")
-thread.daemon = True
-thread.start()
+ # Run thread that regularly updates the current time
+ thread = Thread(target=update_time, args=[gui], name="clock")
+ thread.daemon = True
+ thread.start()
-gui.run()
+ gui.run()
diff --git a/doc/gui/examples/broadcast_change.py b/doc/gui/examples/broadcast_change.py
index ac92f1a2bb..56c70e3f2c 100644
--- a/doc/gui/examples/broadcast_change.py
+++ b/doc/gui/examples/broadcast_change.py
@@ -23,8 +23,6 @@
from taipy.gui import Gui
-current_time = datetime.now()
-
# The function that executes in its own thread.
# Update the current time every second.
@@ -34,15 +32,18 @@ def update_time(gui):
sleep(1)
-page = """
+if __name__ == "__main__":
+ current_time = datetime.now()
+
+ page = """
Current time is: <|{current_time}|format=HH:mm:ss|>
-"""
+ """
-gui = Gui(page)
+ gui = Gui(page)
-# Run thread that regularly updates the current time
-thread = Thread(target=update_time, args=[gui], name="clock")
-thread.daemon = True
-thread.start()
+ # Run thread that regularly updates the current time
+ thread = Thread(target=update_time, args=[gui], name="clock")
+ thread.daemon = True
+ thread.start()
-gui.run()
+ gui.run()
diff --git a/doc/gui/examples/charts/advanced-annotations.py b/doc/gui/examples/charts/advanced-annotations.py
index 75c914b3b9..645449ae16 100644
--- a/doc/gui/examples/charts/advanced-annotations.py
+++ b/doc/gui/examples/charts/advanced-annotations.py
@@ -21,31 +21,31 @@ def f(x):
return x * x * x / 3 - x
-# x values: [-2.2, ..., 2.2]
-x = [(x - 10) / 4.5 for x in range(0, 21)]
-
-data = {
- "x": x,
- # y: [f(-2.2), ..., f(2.2)]
- "y": [f(x) for x in x],
-}
-
-
-layout = {
- # Chart title
- "title": "Local extrema",
- "annotations": [
- # Annotation for local maximum (x = -1)
- {"text": "Local max", "font": {"size": 20}, "x": -1, "y": f(-1)},
- # Annotation for local minimum (x = 1)
- {"text": "Local min", "font": {"size": 20}, "x": 1, "y": f(1), "xanchor": "left"},
- ],
-}
-
-page = """
+if __name__ == "__main__":
+ # x values: [-2.2, ..., 2.2]
+ x = [(x - 10) / 4.5 for x in range(0, 21)]
+
+ data = {
+ "x": x,
+ # y: [f(-2.2), ..., f(2.2)]
+ "y": [f(x) for x in x],
+ }
+
+ layout = {
+ # Chart title
+ "title": "Local extrema",
+ "annotations": [
+ # Annotation for local maximum (x = -1)
+ {"text": "Local max", "font": {"size": 20}, "x": -1, "y": f(-1)},
+ # Annotation for local minimum (x = 1)
+ {"text": "Local min", "font": {"size": 20}, "x": 1, "y": f(1), "xanchor": "left"},
+ ],
+ }
+
+ page = """
# Advanced - Annotations
<|{data}|chart|layout={layout}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/advanced-python-lib.py b/doc/gui/examples/charts/advanced-python-lib.py
index 252a8fdd66..bc6c037d46 100644
--- a/doc/gui/examples/charts/advanced-python-lib.py
+++ b/doc/gui/examples/charts/advanced-python-lib.py
@@ -21,29 +21,34 @@
from taipy.gui import Gui
-# Create the Plotly figure object
-figure = go.Figure()
-
-# Add trace for Normal Distribution
-figure.add_trace(
- go.Violin(name="Normal", y=np.random.normal(loc=0, scale=1, size=1000), box_visible=True, meanline_visible=True)
-)
-
-# Add trace for Exponential Distribution
-figure.add_trace(
- go.Violin(name="Exponential", y=np.random.exponential(scale=1, size=1000), box_visible=True, meanline_visible=True)
-)
-
-# Add trace for Uniform Distribution
-figure.add_trace(
- go.Violin(name="Uniform", y=np.random.uniform(low=0, high=1, size=1000), box_visible=True, meanline_visible=True)
-)
-
-# Updating layout for better visualization
-figure.update_layout(title="Different Probability Distributions")
-
-page = """
+if __name__ == "__main__":
+ # Create the Plotly figure object
+ figure = go.Figure()
+
+ # Add trace for Normal Distribution
+ figure.add_trace(
+ go.Violin(name="Normal", y=np.random.normal(loc=0, scale=1, size=1000), box_visible=True, meanline_visible=True)
+ )
+
+ # Add trace for Exponential Distribution
+ figure.add_trace(
+ go.Violin(
+ name="Exponential", y=np.random.exponential(scale=1, size=1000), box_visible=True, meanline_visible=True
+ )
+ )
+
+ # Add trace for Uniform Distribution
+ figure.add_trace(
+ go.Violin(
+ name="Uniform", y=np.random.uniform(low=0, high=1, size=1000), box_visible=True, meanline_visible=True
+ )
+ )
+
+ # Updating layout for better visualization
+ figure.update_layout(title="Different Probability Distributions")
+
+ page = """
<|chart|figure={figure}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/advanced-selection.py b/doc/gui/examples/charts/advanced-selection.py
index cd683b6dd7..385ad83a76 100644
--- a/doc/gui/examples/charts/advanced-selection.py
+++ b/doc/gui/examples/charts/advanced-selection.py
@@ -20,43 +20,44 @@
from taipy.gui import Gui
-# x = [0..20]
-x = list(range(0, 21))
-data = {
- "x": x,
- # A list of random values within [1, 10]
- "y": [random.uniform(1, 10) for _ in x],
-}
+def on_change(state, var, val):
+ if var == "selected_indices":
+ state.mean_value = numpy.mean([data["y"][idx] for idx in val]) if len(val) else 0
-layout = {
- # Force the Box select tool
- "dragmode": "select",
- # Remove all margins around the plot
- "margin": {"l": 0, "r": 0, "b": 0, "t": 0},
-}
-config = {
- # Hide Plotly's mode bar
- "displayModeBar": False
-}
+if __name__ == "__main__":
+ # x = [0..20]
+ x = list(range(0, 21))
-selected_indices: List = []
+ data = {
+ "x": x,
+ # A list of random values within [1, 10]
+ "y": [random.uniform(1, 10) for _ in x],
+ }
-mean_value = 0.0
+ layout = {
+ # Force the Box select tool
+ "dragmode": "select",
+ # Remove all margins around the plot
+ "margin": {"l": 0, "r": 0, "b": 0, "t": 0},
+ }
+ config = {
+ # Hide Plotly's mode bar
+ "displayModeBar": False
+ }
-def on_change(state, var, val):
- if var == "selected_indices":
- state.mean_value = numpy.mean([data["y"][idx] for idx in val]) if len(val) else 0
+ selected_indices: List = []
+ mean_value = 0.0
-page = """
+ page = """
# Advanced - Selection
## Mean of <|{len(selected_indices)}|raw|> selected points: <|{mean_value}|format=%.2f|raw|>
<|{data}|chart|selected={selected_indices}|layout={layout}|plot_config={config}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/advanced-shapes.py b/doc/gui/examples/charts/advanced-shapes.py
index d58759af0c..765bdc583e 100644
--- a/doc/gui/examples/charts/advanced-shapes.py
+++ b/doc/gui/examples/charts/advanced-shapes.py
@@ -21,44 +21,45 @@ def f(x):
return x * x * x / 3 - x
-# x values: [-2.2, ..., 2.2]
-x = [(x - 10) / 4.5 for x in range(0, 21)]
+if __name__ == "__main__":
+ # x values: [-2.2, ..., 2.2]
+ x = [(x - 10) / 4.5 for x in range(0, 21)]
-data = {
- "x": x,
- # y: [f(-2.2), ..., f(2.2)]
- "y": [f(x) for x in x],
-}
+ data = {
+ "x": x,
+ # y: [f(-2.2), ..., f(2.2)]
+ "y": [f(x) for x in x],
+ }
-shape_size = 0.1
+ shape_size = 0.1
-layout = {
- "shapes": [
- # Shape for local maximum (x = -1)
- {
- "x0": -1 - shape_size,
- "y0": f(-1) - 2 * shape_size,
- "x1": -1 + shape_size,
- "y1": f(-1) + 2 * shape_size,
- "fillcolor": "green",
- "opacity": 0.5,
- },
- # Shape for local minimum (x = 1)
- {
- "x0": 1 - shape_size,
- "y0": f(1) - 2 * shape_size,
- "x1": 1 + shape_size,
- "y1": f(1) + 2 * shape_size,
- "fillcolor": "red",
- "opacity": 0.5,
- },
- ]
-}
+ layout = {
+ "shapes": [
+ # Shape for local maximum (x = -1)
+ {
+ "x0": -1 - shape_size,
+ "y0": f(-1) - 2 * shape_size,
+ "x1": -1 + shape_size,
+ "y1": f(-1) + 2 * shape_size,
+ "fillcolor": "green",
+ "opacity": 0.5,
+ },
+ # Shape for local minimum (x = 1)
+ {
+ "x0": 1 - shape_size,
+ "y0": f(1) - 2 * shape_size,
+ "x1": 1 + shape_size,
+ "y1": f(1) + 2 * shape_size,
+ "fillcolor": "red",
+ "opacity": 0.5,
+ },
+ ]
+ }
-page = """
+ page = """
# Advanced - Annotations
<|{data}|chart|layout={layout}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/advanced-unbalanced-datasets.py b/doc/gui/examples/charts/advanced-unbalanced-datasets.py
index 45faebdf3e..18f79495a4 100644
--- a/doc/gui/examples/charts/advanced-unbalanced-datasets.py
+++ b/doc/gui/examples/charts/advanced-unbalanced-datasets.py
@@ -15,26 +15,27 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-# The first data set uses the x interval [-10..10],
-# with one point at every other unit
-x1_range = [x * 2 for x in range(-5, 6)]
+if __name__ == "__main__":
+ # The first data set uses the x interval [-10..10],
+ # with one point at every other unit
+ x1_range = [x * 2 for x in range(-5, 6)]
-# The second data set uses the x interval [-4..4],
-# with ten point between every unit
-x2_range = [x / 10 for x in range(-40, 41)]
+ # The second data set uses the x interval [-4..4],
+ # with ten point between every unit
+ x2_range = [x / 10 for x in range(-40, 41)]
-# Definition of the two data sets
-data = [
- # Coarse data set
- {"x": x1_range, "Coarse": [x * x for x in x1_range]},
- # Fine data set
- {"x": x2_range, "Fine": [x * x for x in x2_range]},
-]
+ # Definition of the two data sets
+ data = [
+ # Coarse data set
+ {"x": x1_range, "Coarse": [x * x for x in x1_range]},
+ # Fine data set
+ {"x": x2_range, "Fine": [x * x for x in x2_range]},
+ ]
-page = """
+ page = """
# Advanced - Unbalanced data sets
<|{data}|chart|x[1]=0/x|y[1]=0/Coarse|x[2]=1/x|y[2]=1/Fine|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/bar-facing.py b/doc/gui/examples/charts/bar-facing.py
index 0577aa22f6..9df35f95b0 100644
--- a/doc/gui/examples/charts/bar-facing.py
+++ b/doc/gui/examples/charts/bar-facing.py
@@ -18,69 +18,69 @@
from taipy.gui import Gui
-n_years = 10
+if __name__ == "__main__":
+ n_years = 10
-proportions_female = numpy.zeros(n_years)
-proportions_male = numpy.zeros(n_years)
+ proportions_female = numpy.zeros(n_years)
+ proportions_male = numpy.zeros(n_years)
-# Prepare the data set with random variations
-proportions_female[0] = 0.4
-proportions_male[0] = proportions_female[0] * (1 + numpy.random.normal(0, 0.1))
+ # Prepare the data set with random variations
+ proportions_female[0] = 0.4
+ proportions_male[0] = proportions_female[0] * (1 + numpy.random.normal(0, 0.1))
-for i in range(1, n_years):
- mean_i = (0.5 - proportions_female[i - 1]) / 5
- new_value = proportions_female[i - 1] + numpy.random.normal(mean_i, 0.1)
+ for i in range(1, n_years):
+ mean_i = (0.5 - proportions_female[i - 1]) / 5
+ new_value = proportions_female[i - 1] + numpy.random.normal(mean_i, 0.1)
- new_value = min(max(0, new_value), 1)
- proportions_female[i] = new_value
- proportions_male[i] = proportions_female[i] * (1 + numpy.random.normal(0, 0.1))
+ new_value = min(max(0, new_value), 1)
+ proportions_female[i] = new_value
+ proportions_male[i] = proportions_female[i] * (1 + numpy.random.normal(0, 0.1))
+ data = {
+ "Hobbies": [
+ "Archery",
+ "Tennis",
+ "Football",
+ "Basket",
+ "Volley",
+ "Golf",
+ "Video-Games",
+ "Reading",
+ "Singing",
+ "Music",
+ ],
+ "Female": proportions_female,
+ # Negate these values so they appear to the left side
+ "Male": -proportions_male,
+ }
-data = {
- "Hobbies": [
- "Archery",
- "Tennis",
- "Football",
- "Basket",
- "Volley",
- "Golf",
- "Video-Games",
- "Reading",
- "Singing",
- "Music",
- ],
- "Female": proportions_female,
- # Negate these values so they appear to the left side
- "Male": -proportions_male,
-}
+ properties = {
+ # Shared y values
+ "y": "Hobbies",
+ # Bars for the female data set
+ "x[1]": "Female",
+ "color[1]": "#c26391",
+ # Bars for the male data set
+ "x[2]": "Male",
+ "color[2]": "#5c91de",
+ # Both data sets are represented with an horizontal orientation
+ "orientation": "h",
+ #
+ "layout": {
+ # This makes left and right bars aligned on the same y value
+ "barmode": "overlay",
+ # Set a relevant title for the x axis
+ "xaxis": {"title": "Gender"},
+ # Hide the legend
+ "showlegend": False,
+ "margin": {"l": 100},
+ },
+ }
-properties = {
- # Shared y values
- "y": "Hobbies",
- # Bars for the female data set
- "x[1]": "Female",
- "color[1]": "#c26391",
- # Bars for the male data set
- "x[2]": "Male",
- "color[2]": "#5c91de",
- # Both data sets are represented with an horizontal orientation
- "orientation": "h",
- #
- "layout": {
- # This makes left and right bars aligned on the same y value
- "barmode": "overlay",
- # Set a relevant title for the x axis
- "xaxis": {"title": "Gender"},
- # Hide the legend
- "showlegend": False,
- "margin": {"l": 100},
- },
-}
-
-page = """
+ page = """
# Bar - Facing
<|{data}|chart|type=bar|properties={properties}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/bar-multiple.py b/doc/gui/examples/charts/bar-multiple.py
index 8c36ed12a9..eb4f52a2fd 100644
--- a/doc/gui/examples/charts/bar-multiple.py
+++ b/doc/gui/examples/charts/bar-multiple.py
@@ -18,37 +18,38 @@
from taipy.gui import Gui
-# Source https://en.wikipedia.org/wiki/List_of_United_States_presidential_elections_by_popular_vote_margin
-percentages = [
- (1852, 50.83),
- (1856, 45.29),
- (1860, 39.65),
- (1864, 55.03),
- (1868, 52.66),
- (1872, 55.58),
- (1876, 47.92),
- (1880, 48.31),
- (1884, 48.85),
- (1888, 47.80),
- (1892, 46.02),
- (1896.0, 51.02),
- (1900, 51.64),
- (1904, 56.42),
- (1908, 51.57),
- (1912, 41.84),
- (1916, 49.24),
- (1920, 60.32),
- (1924, 54.04),
- (1928, 58.21),
-]
-data = pandas.DataFrame(percentages, columns=["Year", "Won"])
-lost = [100 - t[1] for t in percentages]
-data["Lost"] = lost
+if __name__ == "__main__":
+ # Source https://en.wikipedia.org/wiki/List_of_United_States_presidential_elections_by_popular_vote_margin
+ percentages = [
+ (1852, 50.83),
+ (1856, 45.29),
+ (1860, 39.65),
+ (1864, 55.03),
+ (1868, 52.66),
+ (1872, 55.58),
+ (1876, 47.92),
+ (1880, 48.31),
+ (1884, 48.85),
+ (1888, 47.80),
+ (1892, 46.02),
+ (1896.0, 51.02),
+ (1900, 51.64),
+ (1904, 56.42),
+ (1908, 51.57),
+ (1912, 41.84),
+ (1916, 49.24),
+ (1920, 60.32),
+ (1924, 54.04),
+ (1928, 58.21),
+ ]
+ data = pandas.DataFrame(percentages, columns=["Year", "Won"])
+ lost = [100 - t[1] for t in percentages]
+ data["Lost"] = lost
-page = """
+ page = """
# Bar - Multiple
<|{data}|chart|type=bar|x=Year|y[1]=Won|y[2]=Lost|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/bar-simple.py b/doc/gui/examples/charts/bar-simple.py
index 91bb1a8c82..7cae01ea04 100644
--- a/doc/gui/examples/charts/bar-simple.py
+++ b/doc/gui/examples/charts/bar-simple.py
@@ -17,58 +17,59 @@
from taipy.gui import Gui
-# Source https://en.wikipedia.org/wiki/List_of_United_States_presidential_elections_by_popular_vote_margin
-percentages = [
- (1852, 50.83),
- (1856, 45.29),
- (1860, 39.65),
- (1864, 55.03),
- (1868, 52.66),
- (1872, 55.58),
- (1876, 47.92),
- (1880, 48.31),
- (1884, 48.85),
- (1888, 47.80),
- (1892, 46.02),
- (1896.0, 51.02),
- (1900, 51.64),
- (1904, 56.42),
- (1908, 51.57),
- (1912, 41.84),
- (1916, 49.24),
- (1920, 60.32),
- (1924, 54.04),
- (1928, 58.21),
- (1932, 57.41),
- (1936, 60.80),
- (1940, 54.74),
- (1944, 53.39),
- (1948, 49.55),
- (1952, 55.18),
- (1956, 57.37),
- (1960, 49.72),
- (1964, 61.05),
- (1968, 43.42),
- (1972, 60.67),
- (1976, 50.08),
- (1980, 50.75),
- (1984, 58.77),
- (1988, 53.37),
- (1992, 43.01),
- (1996, 49.23),
- (2000, 47.87),
- (2004, 50.73),
- (2008, 52.93),
- (2012, 51.06),
- (2016, 46.09),
- (2020, 51.31),
-]
-data = pandas.DataFrame(percentages, columns=["Year", "%"])
+if __name__ == "__main__":
+ # Source https://en.wikipedia.org/wiki/List_of_United_States_presidential_elections_by_popular_vote_margin
+ percentages = [
+ (1852, 50.83),
+ (1856, 45.29),
+ (1860, 39.65),
+ (1864, 55.03),
+ (1868, 52.66),
+ (1872, 55.58),
+ (1876, 47.92),
+ (1880, 48.31),
+ (1884, 48.85),
+ (1888, 47.80),
+ (1892, 46.02),
+ (1896.0, 51.02),
+ (1900, 51.64),
+ (1904, 56.42),
+ (1908, 51.57),
+ (1912, 41.84),
+ (1916, 49.24),
+ (1920, 60.32),
+ (1924, 54.04),
+ (1928, 58.21),
+ (1932, 57.41),
+ (1936, 60.80),
+ (1940, 54.74),
+ (1944, 53.39),
+ (1948, 49.55),
+ (1952, 55.18),
+ (1956, 57.37),
+ (1960, 49.72),
+ (1964, 61.05),
+ (1968, 43.42),
+ (1972, 60.67),
+ (1976, 50.08),
+ (1980, 50.75),
+ (1984, 58.77),
+ (1988, 53.37),
+ (1992, 43.01),
+ (1996, 49.23),
+ (2000, 47.87),
+ (2004, 50.73),
+ (2008, 52.93),
+ (2012, 51.06),
+ (2016, 46.09),
+ (2020, 51.31),
+ ]
+ data = pandas.DataFrame(percentages, columns=["Year", "%"])
-page = """
+ page = """
# Bar - Simple
<|{data}|chart|type=bar|x=Year|y=%|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/bar-stacked.py b/doc/gui/examples/charts/bar-stacked.py
index 06d3d05925..7c45f67ac8 100644
--- a/doc/gui/examples/charts/bar-stacked.py
+++ b/doc/gui/examples/charts/bar-stacked.py
@@ -17,41 +17,42 @@
from taipy.gui import Gui
-# Source https://en.wikipedia.org/wiki/List_of_United_States_presidential_elections_by_popular_vote_margin
-percentages = [
- (1852, 50.83),
- (1856, 45.29),
- (1860, 39.65),
- (1864, 55.03),
- (1868, 52.66),
- (1872, 55.58),
- (1876, 47.92),
- (1880, 48.31),
- (1884, 48.85),
- (1888, 47.80),
- (1892, 46.02),
- (1896.0, 51.02),
- (1900, 51.64),
- (1904, 56.42),
- (1908, 51.57),
- (1912, 41.84),
- (1916, 49.24),
- (1920, 60.32),
- (1924, 54.04),
- (1928, 58.21),
-]
-
-# Lost percentage = 100-Won percentage
-full = [(t[0], t[1], 100 - t[1]) for t in percentages]
-
-data = pandas.DataFrame(full, columns=["Year", "Won", "Lost"])
-
-layout = {"barmode": "stack"}
-
-page = """
+if __name__ == "__main__":
+ # Source https://en.wikipedia.org/wiki/List_of_United_States_presidential_elections_by_popular_vote_margin
+ percentages = [
+ (1852, 50.83),
+ (1856, 45.29),
+ (1860, 39.65),
+ (1864, 55.03),
+ (1868, 52.66),
+ (1872, 55.58),
+ (1876, 47.92),
+ (1880, 48.31),
+ (1884, 48.85),
+ (1888, 47.80),
+ (1892, 46.02),
+ (1896.0, 51.02),
+ (1900, 51.64),
+ (1904, 56.42),
+ (1908, 51.57),
+ (1912, 41.84),
+ (1916, 49.24),
+ (1920, 60.32),
+ (1924, 54.04),
+ (1928, 58.21),
+ ]
+
+ # Lost percentage = 100-Won percentage
+ full = [(t[0], t[1], 100 - t[1]) for t in percentages]
+
+ data = pandas.DataFrame(full, columns=["Year", "Won", "Lost"])
+
+ layout = {"barmode": "stack"}
+
+ page = """
# Bar - Stacked
<|{data}|chart|type=bar|x=Year|y[1]=Won|y[2]=Lost|layout={layout}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/basics-multiple.py b/doc/gui/examples/charts/basics-multiple.py
index 2c4980d340..18435d429e 100644
--- a/doc/gui/examples/charts/basics-multiple.py
+++ b/doc/gui/examples/charts/basics-multiple.py
@@ -15,22 +15,23 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-# x values are [-10..10]
-x_range = range(-10, 11)
+if __name__ == "__main__":
+ # x values are [-10..10]
+ x_range = range(-10, 11)
-# The data set holds the _x_ series and two distinct series for _y_
-data = {
- "x": x_range,
- # y1 = x*x
- "y1": [x * x for x in x_range],
- # y2 = 100-x*x
- "y2": [100 - x * x for x in x_range],
-}
+ # The data set holds the _x_ series and two distinct series for _y_
+ data = {
+ "x": x_range,
+ # y1 = x*x
+ "y1": [x * x for x in x_range],
+ # y2 = 100-x*x
+ "y2": [100 - x * x for x in x_range],
+ }
-page = """
+ page = """
# Basics - Multiple traces
<|{data}|chart|x=x|y[1]=y1|y[2]=y2|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/basics-simple.py b/doc/gui/examples/charts/basics-simple.py
index 9c5d2b448b..52b4b28830 100644
--- a/doc/gui/examples/charts/basics-simple.py
+++ b/doc/gui/examples/charts/basics-simple.py
@@ -15,12 +15,13 @@
# -----------------------------------------------------------------------------------------
from taipy import Gui
-# The chart control's data is defined as inline
-# code.
-page = """
+if __name__ == "__main__":
+ # The chart control's data is defined as inline
+ # code.
+ page = """
# Basics - Simple line
<|{[x*x for x in range(0, 11)]}|chart|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/basics-timeline.py b/doc/gui/examples/charts/basics-timeline.py
index d3c8fb2cb8..10468259e0 100644
--- a/doc/gui/examples/charts/basics-timeline.py
+++ b/doc/gui/examples/charts/basics-timeline.py
@@ -18,13 +18,17 @@
from taipy.gui import Gui
-# Generate a random value for every hour on a given day
-data = {"Date": pandas.date_range("2023-01-04", periods=24, freq="H"), "Value": pandas.Series(numpy.random.randn(24))}
+if __name__ == "__main__":
+ # Generate a random value for every hour on a given day
+ data = {
+ "Date": pandas.date_range("2023-01-04", periods=24, freq="H"),
+ "Value": pandas.Series(numpy.random.randn(24)),
+ }
-page = """
+ page = """
# Basics - Timeline
<|{data}|chart|x=Date|y=Value|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/basics-title.py b/doc/gui/examples/charts/basics-title.py
index b706b80054..cb1af3ccdc 100644
--- a/doc/gui/examples/charts/basics-title.py
+++ b/doc/gui/examples/charts/basics-title.py
@@ -15,17 +15,18 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-layout = {
- "xaxis": {
- # Force the title of the x axis
- "title": "Values for x"
+if __name__ == "__main__":
+ layout = {
+ "xaxis": {
+ # Force the title of the x axis
+ "title": "Values for x"
+ }
}
-}
-page = """
+ page = """
# Basics - Title
<|{[x*x for x in range(0, 11)]}|chart|title=Plotting x squared|layout={layout}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/basics-two-y-axis.py b/doc/gui/examples/charts/basics-two-y-axis.py
index 10dee398a9..361c14c086 100644
--- a/doc/gui/examples/charts/basics-two-y-axis.py
+++ b/doc/gui/examples/charts/basics-two-y-axis.py
@@ -15,34 +15,35 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-# x values are [-10..10]
-x_range = range(-10, 11)
-
-# The data set holds the _x_ series and two distinct series for _y_
-data = {
- "x": x_range,
- # y1 = x*x
- "y1": [x * x for x in x_range],
- # y2 = 2-x*x/50
- "y2": [(100 - x * x) / 50 for x in x_range],
-}
-
-layout = {
- "yaxis2": {
- # Second axis overlays with the first y axis
- "overlaying": "y",
- # Place the second axis on the right
- "side": "right",
- # and give it a title
- "title": "Second y axis",
- },
- "legend": {
- # Place the legend above chart
- "yanchor": "bottom"
- },
-}
-
-page = """
+if __name__ == "__main__":
+ # x values are [-10..10]
+ x_range = range(-10, 11)
+
+ # The data set holds the _x_ series and two distinct series for _y_
+ data = {
+ "x": x_range,
+ # y1 = x*x
+ "y1": [x * x for x in x_range],
+ # y2 = 2-x*x/50
+ "y2": [(100 - x * x) / 50 for x in x_range],
+ }
+
+ layout = {
+ "yaxis2": {
+ # Second axis overlays with the first y axis
+ "overlaying": "y",
+ # Place the second axis on the right
+ "side": "right",
+ # and give it a title
+ "title": "Second y axis",
+ },
+ "legend": {
+ # Place the legend above chart
+ "yanchor": "bottom"
+ },
+ }
+
+ page = """
# Basics - Multiple axis
Shared axis:
@@ -50,7 +51,6 @@
With two axis:
<|{data}|chart|x=x|y[1]=y1|y[2]=y2|yaxis[2]=y2|layout={layout}|height=300px|>
+ """
-"""
-
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/basics-xrange.py b/doc/gui/examples/charts/basics-xrange.py
index af21202149..bc8e2b325c 100644
--- a/doc/gui/examples/charts/basics-xrange.py
+++ b/doc/gui/examples/charts/basics-xrange.py
@@ -15,16 +15,17 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-# x values are [-10..10]
-x_range = range(-10, 11)
+if __name__ == "__main__":
+ # x values are [-10..10]
+ x_range = range(-10, 11)
-# The data set that holds both the x and the y values
-data = {"X": x_range, "Y": [x * x for x in x_range]}
+ # The data set that holds both the x and the y values
+ data = {"X": x_range, "Y": [x * x for x in x_range]}
-page = """
+ page = """
# Basics - X range
<|{data}|chart|x=X|y=Y|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/bubble-hover.py b/doc/gui/examples/charts/bubble-hover.py
index 9c0bfbc11d..74424f5e76 100644
--- a/doc/gui/examples/charts/bubble-hover.py
+++ b/doc/gui/examples/charts/bubble-hover.py
@@ -15,24 +15,25 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-data = {
- "x": [1, 2, 3],
- "y": [1, 2, 3],
- "Texts": ["Blue
Small", "Green
Medium", "Red
Large"],
- "Sizes": [60, 80, 100],
- "Colors": [
- "rgb(93, 164, 214)",
- "rgb(44, 160, 101)",
- "rgb(255, 65, 54)",
- ],
-}
+if __name__ == "__main__":
+ data = {
+ "x": [1, 2, 3],
+ "y": [1, 2, 3],
+ "Texts": ["Blue
Small", "Green
Medium", "Red
Large"],
+ "Sizes": [60, 80, 100],
+ "Colors": [
+ "rgb(93, 164, 214)",
+ "rgb(44, 160, 101)",
+ "rgb(255, 65, 54)",
+ ],
+ }
-marker = {"size": "Sizes", "color": "Colors"}
+ marker = {"size": "Sizes", "color": "Colors"}
-page = """
+ page = """
# Bubble - Hover text
<|{data}|chart|mode=markers|x=x|y=y|marker={marker}|text=Texts|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/bubble-simple.py b/doc/gui/examples/charts/bubble-simple.py
index 454f35feb3..f2bf56ee03 100644
--- a/doc/gui/examples/charts/bubble-simple.py
+++ b/doc/gui/examples/charts/bubble-simple.py
@@ -16,20 +16,21 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-data = {
- "x": [1, 2, 3],
- "y": [1, 2, 3],
- "Colors": ["blue", "green", "red"],
- "Sizes": [20, 40, 30],
- "Opacities": [1, 0.4, 1],
-}
+if __name__ == "__main__":
+ data = {
+ "x": [1, 2, 3],
+ "y": [1, 2, 3],
+ "Colors": ["blue", "green", "red"],
+ "Sizes": [20, 40, 30],
+ "Opacities": [1, 0.4, 1],
+ }
-marker = {"color": "Colors", "size": "Sizes", "opacity": "Opacities"}
+ marker = {"color": "Colors", "size": "Sizes", "opacity": "Opacities"}
-page = """
+ page = """
# Bubble - Simple
<|{data}|chart|mode=markers|x=x|y=y|marker={marker}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/bubble-symbols.py b/doc/gui/examples/charts/bubble-symbols.py
index 875d39d508..abecf011ca 100644
--- a/doc/gui/examples/charts/bubble-symbols.py
+++ b/doc/gui/examples/charts/bubble-symbols.py
@@ -16,23 +16,24 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-data = {
- "x": [1, 2, 3, 4, 5],
- "y": [10, 7, 4, 1, 5],
- "Sizes": [20, 30, 40, 50, 30],
- "Symbols": ["circle-open", "triangle-up", "hexagram", "star-diamond", "circle-cross"],
-}
+if __name__ == "__main__":
+ data = {
+ "x": [1, 2, 3, 4, 5],
+ "y": [10, 7, 4, 1, 5],
+ "Sizes": [20, 30, 40, 50, 30],
+ "Symbols": ["circle-open", "triangle-up", "hexagram", "star-diamond", "circle-cross"],
+ }
-marker = {
- "color": "#77A",
- "size": "Sizes",
- "symbol": "Symbols",
-}
+ marker = {
+ "color": "#77A",
+ "size": "Sizes",
+ "symbol": "Symbols",
+ }
-page = """
+ page = """
# Bubble - Symbols
<|{data}|chart|mode=markers|x=x|y=y|marker={marker}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/candlestick-simple.py b/doc/gui/examples/charts/candlestick-simple.py
index 14e6514dec..91b9cacdd1 100644
--- a/doc/gui/examples/charts/candlestick-simple.py
+++ b/doc/gui/examples/charts/candlestick-simple.py
@@ -18,18 +18,19 @@
from taipy import Gui
-# Extraction of a month of stock data for AAPL using the
-# yfinance package (see https://pypi.org/project/yfinance/).
-ticker = yfinance.Ticker("AAPL")
-# The returned value is a Pandas DataFrame.
-stock = ticker.history(interval="1d", start="2018-08-01", end="2018-08-31")
-# Copy the DataFrame's index to a new column
-stock["Date"] = stock.index
+if __name__ == "__main__":
+ # Extraction of a month of stock data for AAPL using the
+ # yfinance package (see https://pypi.org/project/yfinance/).
+ ticker = yfinance.Ticker("AAPL")
+ # The returned value is a Pandas DataFrame.
+ stock = ticker.history(interval="1d", start="2018-08-01", end="2018-08-31")
+ # Copy the DataFrame's index to a new column
+ stock["Date"] = stock.index
-page = """
+ page = """
# Candlestick - Simple
<|{stock}|chart|type=candlestick|x=Date|open=Open|close=Close|low=Low|high=High|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/candlestick-styling.py b/doc/gui/examples/charts/candlestick-styling.py
index 0dd2699966..58b2de578a 100644
--- a/doc/gui/examples/charts/candlestick-styling.py
+++ b/doc/gui/examples/charts/candlestick-styling.py
@@ -18,32 +18,33 @@
from taipy.gui import Gui
-# Extraction of a few days of stock historical data for AAPL using
-# the yfinance package (see https://pypi.org/project/yfinance/).
-# The returned value is a Pandas DataFrame.
-ticker = yfinance.Ticker("AAPL")
-stock = ticker.history(interval="1d", start="2018-08-18", end="2018-09-10")
-# Copy the DataFrame index to a new column
-stock["Date"] = stock.index
+if __name__ == "__main__":
+ # Extraction of a few days of stock historical data for AAPL using
+ # the yfinance package (see https://pypi.org/project/yfinance/).
+ # The returned value is a Pandas DataFrame.
+ ticker = yfinance.Ticker("AAPL")
+ stock = ticker.history(interval="1d", start="2018-08-18", end="2018-09-10")
+ # Copy the DataFrame index to a new column
+ stock["Date"] = stock.index
-options = {
- # Candlesticks that show decreasing values are orange
- "decreasing": {"line": {"color": "orange"}},
- # Candlesticks that show decreasing values are blue
- "increasing": {"line": {"color": "blue"}},
-}
+ options = {
+ # Candlesticks that show decreasing values are orange
+ "decreasing": {"line": {"color": "orange"}},
+ # Candlesticks that show decreasing values are blue
+ "increasing": {"line": {"color": "blue"}},
+ }
-layout = {
- "xaxis": {
- # Hide the range slider
- "rangeslider": {"visible": False}
+ layout = {
+ "xaxis": {
+ # Hide the range slider
+ "rangeslider": {"visible": False}
+ }
}
-}
-page = """
+ page = """
# Candlestick - Styling
<|{stock}|chart|type=candlestick|x=Date|open=Open|close=Close|low=Low|high=High|options={options}|layout={layout}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/candlestick-timeseries.py b/doc/gui/examples/charts/candlestick-timeseries.py
index 956c1f8e76..69f9f46990 100644
--- a/doc/gui/examples/charts/candlestick-timeseries.py
+++ b/doc/gui/examples/charts/candlestick-timeseries.py
@@ -17,46 +17,47 @@
from taipy.gui import Gui
-# Retrieved history:
-# (Open, Close, Low, High)
-stock_history = [
- (311.05, 311.00, 310.75, 311.33),
- (308.53, 308.31, 307.72, 309.00),
- (307.35, 306.24, 306.12, 307.46),
- (306.35, 304.90, 304.34, 310.10),
- (304.90, 302.99, 302.27, 307.00),
- (303.03, 301.66, 301.20, 303.25),
- (301.61, 299.58, 299.50, 301.89),
- (299.58, 297.95, 297.80, 300.06),
- (297.95, 299.03, 297.14, 299.67),
- (299.03, 301.87, 296.71, 301.89),
- (301.89, 299.40, 298.73, 302.93),
- (299.50, 299.35, 298.83, 299.50),
- (299.35, 299.20, 299.19, 299.68),
- (299.42, 300.50, 299.42, 300.50),
- (300.70, 300.65, 300.32, 300.75),
- (300.65, 299.91, 299.91, 300.76),
-]
-start_date = datetime.datetime(year=2022, month=10, day=21)
-period = datetime.timedelta(seconds=4 * 60 * 60) # 4 hours
+if __name__ == "__main__":
+ # Retrieved history:
+ # (Open, Close, Low, High)
+ stock_history = [
+ (311.05, 311.00, 310.75, 311.33),
+ (308.53, 308.31, 307.72, 309.00),
+ (307.35, 306.24, 306.12, 307.46),
+ (306.35, 304.90, 304.34, 310.10),
+ (304.90, 302.99, 302.27, 307.00),
+ (303.03, 301.66, 301.20, 303.25),
+ (301.61, 299.58, 299.50, 301.89),
+ (299.58, 297.95, 297.80, 300.06),
+ (297.95, 299.03, 297.14, 299.67),
+ (299.03, 301.87, 296.71, 301.89),
+ (301.89, 299.40, 298.73, 302.93),
+ (299.50, 299.35, 298.83, 299.50),
+ (299.35, 299.20, 299.19, 299.68),
+ (299.42, 300.50, 299.42, 300.50),
+ (300.70, 300.65, 300.32, 300.75),
+ (300.65, 299.91, 299.91, 300.76),
+ ]
+ start_date = datetime.datetime(year=2022, month=10, day=21)
+ period = datetime.timedelta(seconds=4 * 60 * 60) # 4 hours
-data = {
- # Compute date series
- "Date": [start_date + n * period for n in range(0, len(stock_history))],
- # Extract open values
- "Open": [v[0] for v in stock_history],
- # Extract close values
- "Close": [v[1] for v in stock_history],
- # Extract low values
- "Low": [v[2] for v in stock_history],
- # Extract high values
- "High": [v[3] for v in stock_history],
-}
+ data = {
+ # Compute date series
+ "Date": [start_date + n * period for n in range(0, len(stock_history))],
+ # Extract open values
+ "Open": [v[0] for v in stock_history],
+ # Extract close values
+ "Close": [v[1] for v in stock_history],
+ # Extract low values
+ "Low": [v[2] for v in stock_history],
+ # Extract high values
+ "High": [v[3] for v in stock_history],
+ }
-md = """
+ md = """
# Candlestick - Timeline
<|{data}|chart|type=candlestick|x=Date|open=Open|close=Close|low=Low|high=High|>
-"""
+ """
-Gui(md).run()
+ Gui(md).run()
diff --git a/doc/gui/examples/charts/continuous-error-multiple.py b/doc/gui/examples/charts/continuous-error-multiple.py
index 6986267846..21a62bfec8 100644
--- a/doc/gui/examples/charts/continuous-error-multiple.py
+++ b/doc/gui/examples/charts/continuous-error-multiple.py
@@ -20,97 +20,98 @@
from taipy.gui import Gui
-# Data is collected from January 1st, 2010, every month
-start_date = datetime.datetime(year=2010, month=1, day=1)
-period = dateutil.relativedelta.relativedelta(months=1)
+if __name__ == "__main__":
+ # Data is collected from January 1st, 2010, every month
+ start_date = datetime.datetime(year=2010, month=1, day=1)
+ period = dateutil.relativedelta.relativedelta(months=1)
-# Data
-# All arrays have the same size (the number of months to track)
-prices: Dict[str, List] = {
- # Data for apples
- "apples": [2.48, 2.47, 2.5, 2.47, 2.46, 2.38, 2.31, 2.25, 2.39, 2.41, 2.59, 2.61],
- "apples_low": [1.58, 1.58, 1.59, 1.64, 1.79, 1.54, 1.53, 1.61, 1.65, 2.02, 1.92, 1.54],
- "apples_high": [3.38, 3.32, 2.63, 2.82, 2.58, 2.53, 3.27, 3.15, 3.44, 3.42, 3.08, 2.86],
- "bananas": [2.94, 2.50, 2.39, 2.77, 2.43, 2.32, 2.37, 1.90, 2.31, 2.71, 3.38, 1.92],
- "bananas_low": [2.12, 1.90, 1.69, 2.44, 1.58, 1.81, 1.44, 1.00, 1.59, 1.74, 2.78, 0.96],
- "bananas_high": [3.32, 2.70, 3.12, 3.25, 3.00, 2.63, 2.54, 2.37, 2.97, 3.69, 4.36, 2.95],
- "cherries": [6.18, None, None, None, 3.69, 2.46, 2.31, 2.57, None, None, 6.50, 4.38],
- "cherries_high": [7.00, None, None, None, 8.50, 6.27, 5.61, 4.36, None, None, 8.00, 7.23],
- "cherries_low": [3.55, None, None, None, 1.20, 0.87, 1.08, 1.50, None, None, 5.00, 4.20],
-}
+ # Data
+ # All arrays have the same size (the number of months to track)
+ prices: Dict[str, List] = {
+ # Data for apples
+ "apples": [2.48, 2.47, 2.5, 2.47, 2.46, 2.38, 2.31, 2.25, 2.39, 2.41, 2.59, 2.61],
+ "apples_low": [1.58, 1.58, 1.59, 1.64, 1.79, 1.54, 1.53, 1.61, 1.65, 2.02, 1.92, 1.54],
+ "apples_high": [3.38, 3.32, 2.63, 2.82, 2.58, 2.53, 3.27, 3.15, 3.44, 3.42, 3.08, 2.86],
+ "bananas": [2.94, 2.50, 2.39, 2.77, 2.43, 2.32, 2.37, 1.90, 2.31, 2.71, 3.38, 1.92],
+ "bananas_low": [2.12, 1.90, 1.69, 2.44, 1.58, 1.81, 1.44, 1.00, 1.59, 1.74, 2.78, 0.96],
+ "bananas_high": [3.32, 2.70, 3.12, 3.25, 3.00, 2.63, 2.54, 2.37, 2.97, 3.69, 4.36, 2.95],
+ "cherries": [6.18, None, None, None, 3.69, 2.46, 2.31, 2.57, None, None, 6.50, 4.38],
+ "cherries_high": [7.00, None, None, None, 8.50, 6.27, 5.61, 4.36, None, None, 8.00, 7.23],
+ "cherries_low": [3.55, None, None, None, 1.20, 0.87, 1.08, 1.50, None, None, 5.00, 4.20],
+ }
-# Create monthly time series
-months = [start_date + n * period for n in range(0, len(prices["apples"]))]
+ # Create monthly time series
+ months = [start_date + n * period for n in range(0, len(prices["apples"]))]
-data = [
- # Raw data
- {"Months": months, "apples": prices["apples"], "bananas": prices["bananas"], "cherries": prices["cherries"]},
- # Range data (twice as many values)
- {
- "Months2": months + list(reversed(months)),
- "apples": prices["apples_high"] + list(reversed(prices["apples_low"])),
- "bananas": prices["bananas_high"] + list(reversed(prices["bananas_low"])),
- "cherries": prices["cherries_high"] + list(reversed(prices["cherries_low"])),
- },
-]
+ data = [
+ # Raw data
+ {"Months": months, "apples": prices["apples"], "bananas": prices["bananas"], "cherries": prices["cherries"]},
+ # Range data (twice as many values)
+ {
+ "Months2": months + list(reversed(months)),
+ "apples": prices["apples_high"] + list(reversed(prices["apples_low"])),
+ "bananas": prices["bananas_high"] + list(reversed(prices["bananas_low"])),
+ "cherries": prices["cherries_high"] + list(reversed(prices["cherries_low"])),
+ },
+ ]
-properties = {
- # First trace: reference for Apples
- "x[1]": "0/Months",
- "y[1]": "0/apples",
- "color[1]": "rgb(0,200,80)",
- # Hide line
- "mode[1]": "markers",
- # Show in the legend
- "name[1]": "Apples",
- # Second trace: reference for Bananas
- "x[2]": "0/Months",
- "y[2]": "0/bananas",
- "color[2]": "rgb(0,100,240)",
- # Hide line
- "mode[2]": "markers",
- # Show in the legend
- "name[2]": "Bananas",
- # Third trace: reference for Cherries
- "x[3]": "0/Months",
- "y[3]": "0/cherries",
- "color[3]": "rgb(240,60,60)",
- # Hide line
- "mode[3]": "markers",
- # Show in the legend
- "name[3]": "Cherries",
- # Fourth trace: range for Apples
- "x[4]": "1/Months2",
- "y[4]": "1/apples",
- "options[4]": {
- "fill": "tozerox",
- "showlegend": False,
- "fillcolor": "rgba(0,100,80,0.4)",
- },
- # No surrounding stroke
- "color[4]": "transparent",
- # Fifth trace: range for Bananas
- "x[5]": "1/Months2",
- "y[5]": "1/bananas",
- "options[5]": {"fill": "tozerox", "showlegend": False, "fillcolor": "rgba(0,180,250,0.4)"},
- # No surrounding stroke
- "color[5]": "transparent",
- # Sixth trace: range for Cherries
- "x[6]": "1/Months2",
- "y[6]": "1/cherries",
- "options[6]": {
- "fill": "tozerox",
- "showlegend": False,
- "fillcolor": "rgba(230,100,120,0.4)",
- },
- # No surrounding stroke
- "color[6]": "transparent",
-}
+ properties = {
+ # First trace: reference for Apples
+ "x[1]": "0/Months",
+ "y[1]": "0/apples",
+ "color[1]": "rgb(0,200,80)",
+ # Hide line
+ "mode[1]": "markers",
+ # Show in the legend
+ "name[1]": "Apples",
+ # Second trace: reference for Bananas
+ "x[2]": "0/Months",
+ "y[2]": "0/bananas",
+ "color[2]": "rgb(0,100,240)",
+ # Hide line
+ "mode[2]": "markers",
+ # Show in the legend
+ "name[2]": "Bananas",
+ # Third trace: reference for Cherries
+ "x[3]": "0/Months",
+ "y[3]": "0/cherries",
+ "color[3]": "rgb(240,60,60)",
+ # Hide line
+ "mode[3]": "markers",
+ # Show in the legend
+ "name[3]": "Cherries",
+ # Fourth trace: range for Apples
+ "x[4]": "1/Months2",
+ "y[4]": "1/apples",
+ "options[4]": {
+ "fill": "tozerox",
+ "showlegend": False,
+ "fillcolor": "rgba(0,100,80,0.4)",
+ },
+ # No surrounding stroke
+ "color[4]": "transparent",
+ # Fifth trace: range for Bananas
+ "x[5]": "1/Months2",
+ "y[5]": "1/bananas",
+ "options[5]": {"fill": "tozerox", "showlegend": False, "fillcolor": "rgba(0,180,250,0.4)"},
+ # No surrounding stroke
+ "color[5]": "transparent",
+ # Sixth trace: range for Cherries
+ "x[6]": "1/Months2",
+ "y[6]": "1/cherries",
+ "options[6]": {
+ "fill": "tozerox",
+ "showlegend": False,
+ "fillcolor": "rgba(230,100,120,0.4)",
+ },
+ # No surrounding stroke
+ "color[6]": "transparent",
+ }
-page = """
+ page = """
# Continuous Error - Multiple traces
<|{data}|chart|properties={properties}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/continuous-error-simple.py b/doc/gui/examples/charts/continuous-error-simple.py
index 9142ce701b..03d0925c57 100644
--- a/doc/gui/examples/charts/continuous-error-simple.py
+++ b/doc/gui/examples/charts/continuous-error-simple.py
@@ -17,58 +17,59 @@
from taipy.gui import Gui
-# Common axis for all data: [1..10]
-x = list(range(1, 11))
-# Sample data
-samples = [5, 7, 8, 4, 5, 9, 8, 8, 6, 5]
+if __name__ == "__main__":
+ # Common axis for all data: [1..10]
+ x = list(range(1, 11))
+ # Sample data
+ samples = [5, 7, 8, 4, 5, 9, 8, 8, 6, 5]
-# Generate error data
-# Error that adds to the input data
-error_plus = [3 * random.random() + 0.5 for _ in x]
-# Error subtracted from to the input data
-error_minus = [3 * random.random() + 0.5 for _ in x]
+ # Generate error data
+ # Error that adds to the input data
+ error_plus = [3 * random.random() + 0.5 for _ in x]
+ # Error subtracted from to the input data
+ error_minus = [3 * random.random() + 0.5 for _ in x]
-# Upper bound (y + error_plus)
-error_upper = [y + e for (y, e) in zip(samples, error_plus)]
-# Lower bound (y - error_minus)
-error_lower = [y - e for (y, e) in zip(samples, error_minus)]
+ # Upper bound (y + error_plus)
+ error_upper = [y + e for (y, e) in zip(samples, error_plus)]
+ # Lower bound (y - error_minus)
+ error_lower = [y - e for (y, e) in zip(samples, error_minus)]
-data = [
- # Trace for samples
- {"x": x, "y": samples},
- # Trace for error range
- {
- # Roundtrip around the error bounds: onward then return
- "x": x + list(reversed(x)),
- # The two error bounds, with lower bound reversed
- "y": error_upper + list(reversed(error_lower)),
- },
-]
+ data = [
+ # Trace for samples
+ {"x": x, "y": samples},
+ # Trace for error range
+ {
+ # Roundtrip around the error bounds: onward then return
+ "x": x + list(reversed(x)),
+ # The two error bounds, with lower bound reversed
+ "y": error_upper + list(reversed(error_lower)),
+ },
+ ]
-properties = {
- # Error data
- "x[1]": "1/x",
- "y[1]": "1/y",
- "options[1]": {
- # Shows as filled area
- "fill": "toself",
- "fillcolor": "rgba(70,70,240,0.6)",
- "showlegend": False,
- },
- # Don't show surrounding stroke
- "color[1]": "transparent",
- # Raw data (displayed on top of the error band)
- "x[2]": "0/x",
- "y[2]": "0/y",
- "color[2]": "rgb(140,50,50)",
- # Shown in the legend
- "name[2]": "Input",
-}
+ properties = {
+ # Error data
+ "x[1]": "1/x",
+ "y[1]": "1/y",
+ "options[1]": {
+ # Shows as filled area
+ "fill": "toself",
+ "fillcolor": "rgba(70,70,240,0.6)",
+ "showlegend": False,
+ },
+ # Don't show surrounding stroke
+ "color[1]": "transparent",
+ # Raw data (displayed on top of the error band)
+ "x[2]": "0/x",
+ "y[2]": "0/y",
+ "color[2]": "rgb(140,50,50)",
+ # Shown in the legend
+ "name[2]": "Input",
+ }
-page = """
+ page = """
# Continuous Error - Simple
<|{data}|chart|properties={properties}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/error-bars-asymmetric.py b/doc/gui/examples/charts/error-bars-asymmetric.py
index 4d9fc7db85..42b6ceabe6 100644
--- a/doc/gui/examples/charts/error-bars-asymmetric.py
+++ b/doc/gui/examples/charts/error-bars-asymmetric.py
@@ -17,35 +17,36 @@
from taipy.gui import Gui
-# Number of samples
-n_samples = 10
-# y values: [0..n_samples-1]
-y = range(0, n_samples)
+if __name__ == "__main__":
+ # Number of samples
+ n_samples = 10
+ # y values: [0..n_samples-1]
+ y = range(0, n_samples)
-data = {
- # The x series is made of random numbers between 1 and 10
- "x": [random.uniform(1, 10) for _ in y],
- "y": y,
-}
+ data = {
+ # The x series is made of random numbers between 1 and 10
+ "x": [random.uniform(1, 10) for _ in y],
+ "y": y,
+ }
-options = {
- "error_x": {
- "type": "data",
- # Allows for a 'plus' and a 'minus' error data
- "symmetric": False,
- # The 'plus' error data is a series of random numbers
- "array": [random.uniform(0, 5) for _ in y],
- # The 'minus' error data is a series of random numbers
- "arrayminus": [random.uniform(0, 2) for _ in y],
- # Color of the error bar
- "color": "red",
+ options = {
+ "error_x": {
+ "type": "data",
+ # Allows for a 'plus' and a 'minus' error data
+ "symmetric": False,
+ # The 'plus' error data is a series of random numbers
+ "array": [random.uniform(0, 5) for _ in y],
+ # The 'minus' error data is a series of random numbers
+ "arrayminus": [random.uniform(0, 2) for _ in y],
+ # Color of the error bar
+ "color": "red",
+ }
}
-}
-page = """
+ page = """
# Error bars - Asymmetric
<|{data}|chart|type=bar|x=x|y=y|orientation=h|options={options}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/error-bars-simple.py b/doc/gui/examples/charts/error-bars-simple.py
index 6ccd88c2f5..aa1a3a154f 100644
--- a/doc/gui/examples/charts/error-bars-simple.py
+++ b/doc/gui/examples/charts/error-bars-simple.py
@@ -18,34 +18,35 @@
from taipy.gui import Gui
-# Number of samples
-max_x = 20
-# x values: [0..max_x-1]
-x = range(0, max_x)
-# Generate random sampling error margins
-error_ranges = [random.uniform(0, 5) for _ in x]
-# Compute a perfect sine wave
-perfect_y = [10 * math.sin(4 * math.pi * i / max_x) for i in x]
-# Compute a sine wave impacted by the sampling error
-# The error is between ±error_ranges[x]/2
-y = [perfect_y[i] + random.uniform(-error_ranges[i] / 2, error_ranges[i] / 2) for i in x]
+if __name__ == "__main__":
+ # Number of samples
+ max_x = 20
+ # x values: [0..max_x-1]
+ x = range(0, max_x)
+ # Generate random sampling error margins
+ error_ranges = [random.uniform(0, 5) for _ in x]
+ # Compute a perfect sine wave
+ perfect_y = [10 * math.sin(4 * math.pi * i / max_x) for i in x]
+ # Compute a sine wave impacted by the sampling error
+ # The error is between ±error_ranges[x]/2
+ y = [perfect_y[i] + random.uniform(-error_ranges[i] / 2, error_ranges[i] / 2) for i in x]
-# The chart data is made of the three series
-data = {
- "x": x,
- "y1": y,
- "y2": perfect_y,
-}
+ # The chart data is made of the three series
+ data = {
+ "x": x,
+ "y1": y,
+ "y2": perfect_y,
+ }
-options = {
- # Create the error bar information:
- "error_y": {"type": "data", "array": error_ranges}
-}
+ options = {
+ # Create the error bar information:
+ "error_y": {"type": "data", "array": error_ranges}
+ }
-page = """
+ page = """
# Error bars - Simple
<|{data}|chart|x=x|y[1]=y1|y[2]=y2|options[1]={options}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/example-rebuild.py b/doc/gui/examples/charts/example-rebuild.py
index 81f4cac7e2..1851df54f5 100644
--- a/doc/gui/examples/charts/example-rebuild.py
+++ b/doc/gui/examples/charts/example-rebuild.py
@@ -17,17 +17,18 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-# x values: [-10..10]
-x_range = range(-10, 11)
-data = {"X": x_range, "Y": [x * x for x in x_range]}
+if __name__ == "__main__":
+ # x values: [-10..10]
+ x_range = range(-10, 11)
+ data = {"X": x_range, "Y": [x * x for x in x_range]}
-types = [("bar", "Bar"), ("line", "Line")]
-selected_type = types[0]
+ types = [("bar", "Bar"), ("line", "Line")]
+ selected_type = types[0]
-page = """
+ page = """
<|{data}|chart|type={selected_type[0]}|x=X|y=Y|rebuild|>
<|{selected_type}|toggle|lov={types}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/filled-area-normalized.py b/doc/gui/examples/charts/filled-area-normalized.py
index bfb37f83c2..0d36811041 100644
--- a/doc/gui/examples/charts/filled-area-normalized.py
+++ b/doc/gui/examples/charts/filled-area-normalized.py
@@ -15,47 +15,48 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-data = {
- "Products": [
- "Nail polish",
- "Eyebrow pencil",
- "Rouge",
- "Lipstick",
- "Eyeshadows",
- "Eyeliner",
- "Foundation",
- "Lip gloss",
- "Mascara",
- ],
- "USA": [12814, 13012, 11624, 8814, 12998, 12321, 10342, 22998, 11261],
- "China": [3054, 5067, 7004, 9054, 12043, 15067, 10119, 12043, 10419],
- "EU": [4376, 3987, 3574, 4376, 4572, 3417, 5231, 4572, 6134],
- "Africa": [4229, 3932, 5221, 9256, 3308, 5432, 13701, 4008, 18712],
-}
+if __name__ == "__main__":
+ data = {
+ "Products": [
+ "Nail polish",
+ "Eyebrow pencil",
+ "Rouge",
+ "Lipstick",
+ "Eyeshadows",
+ "Eyeliner",
+ "Foundation",
+ "Lip gloss",
+ "Mascara",
+ ],
+ "USA": [12814, 13012, 11624, 8814, 12998, 12321, 10342, 22998, 11261],
+ "China": [3054, 5067, 7004, 9054, 12043, 15067, 10119, 12043, 10419],
+ "EU": [4376, 3987, 3574, 4376, 4572, 3417, 5231, 4572, 6134],
+ "Africa": [4229, 3932, 5221, 9256, 3308, 5432, 13701, 4008, 18712],
+ }
-# Order the different traces
-ys = ["USA", "China", "EU", "Africa"]
+ # Order the different traces
+ ys = ["USA", "China", "EU", "Africa"]
-options = [
- # For the USA
- {"stackgroup": "one", "groupnorm": "percent"},
- # For China
- {"stackgroup": "one"},
- # For the EU
- {"stackgroup": "one"},
- # For Africa
- {"stackgroup": "one"},
-]
+ options = [
+ # For the USA
+ {"stackgroup": "one", "groupnorm": "percent"},
+ # For China
+ {"stackgroup": "one"},
+ # For the EU
+ {"stackgroup": "one"},
+ # For Africa
+ {"stackgroup": "one"},
+ ]
-layout = {
- # Show all values when hovering on a data point
- "hovermode": "x unified"
-}
+ layout = {
+ # Show all values when hovering on a data point
+ "hovermode": "x unified"
+ }
-page = """
+ page = """
# Filled Area - Stacked Normalized
<|{data}|chart|mode=none|x=Products|y={ys}|options={options}|layout={layout}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/filled-area-overlay.py b/doc/gui/examples/charts/filled-area-overlay.py
index c36ad22928..cd3c550fca 100644
--- a/doc/gui/examples/charts/filled-area-overlay.py
+++ b/doc/gui/examples/charts/filled-area-overlay.py
@@ -15,24 +15,25 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-data = {
- "Day": ["Mon", "Tue", "Wed", "Thu", "Fri"],
- "Items": [32, 25, 86, 60, 70],
- "Price": [80, 50, 140, 10, 70],
-}
+if __name__ == "__main__":
+ data = {
+ "Day": ["Mon", "Tue", "Wed", "Thu", "Fri"],
+ "Items": [32, 25, 86, 60, 70],
+ "Price": [80, 50, 140, 10, 70],
+ }
-options = [
- # For items
- {"fill": "tozeroy"},
- # For price
- # Using "tonexty" not to cover the first trace
- {"fill": "tonexty"},
-]
+ options = [
+ # For items
+ {"fill": "tozeroy"},
+ # For price
+ # Using "tonexty" not to cover the first trace
+ {"fill": "tonexty"},
+ ]
-page = """
+ page = """
# Filled Area - Overlay
<|{data}|chart|mode=none|x=Day|y[1]=Items|y[2]=Price|options={options}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/filled-area-simple.py b/doc/gui/examples/charts/filled-area-simple.py
index 6dabe22514..6e2d6e3336 100644
--- a/doc/gui/examples/charts/filled-area-simple.py
+++ b/doc/gui/examples/charts/filled-area-simple.py
@@ -15,20 +15,21 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-data = {
- "Day": ["Mon", "Tue", "Wed", "Thu", "Fri"],
- "Items": [32, 25, 86, 60, 70],
-}
+if __name__ == "__main__":
+ data = {
+ "Day": ["Mon", "Tue", "Wed", "Thu", "Fri"],
+ "Items": [32, 25, 86, 60, 70],
+ }
-options = {
- # Fill to x axis
- "fill": "tozeroy"
-}
+ options = {
+ # Fill to x axis
+ "fill": "tozeroy"
+ }
-page = """
+ page = """
# Filled Area - Simple
<|{data}|chart|x=Day|y=Items|options={options}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/filled-area-stacked.py b/doc/gui/examples/charts/filled-area-stacked.py
index acee01dae1..234a247ece 100644
--- a/doc/gui/examples/charts/filled-area-stacked.py
+++ b/doc/gui/examples/charts/filled-area-stacked.py
@@ -15,25 +15,26 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-data = {
- "Month": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
- "Milk": [80, 85, 95, 120, 140, 130, 145, 150, 120, 100, 90, 110],
- "Bread": [100, 90, 85, 90, 100, 110, 105, 95, 100, 110, 120, 125],
- "Apples": [50, 65, 70, 65, 70, 75, 85, 70, 60, 65, 70, 80],
-}
+if __name__ == "__main__":
+ data = {
+ "Month": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
+ "Milk": [80, 85, 95, 120, 140, 130, 145, 150, 120, 100, 90, 110],
+ "Bread": [100, 90, 85, 90, 100, 110, 105, 95, 100, 110, 120, 125],
+ "Apples": [50, 65, 70, 65, 70, 75, 85, 70, 60, 65, 70, 80],
+ }
-# Name of the three sets to trace
-items = ["Milk", "Bread", "Apples"]
+ # Name of the three sets to trace
+ items = ["Milk", "Bread", "Apples"]
-options = {
- # Group all traces in the same stack group
- "stackgroup": "first_group"
-}
+ options = {
+ # Group all traces in the same stack group
+ "stackgroup": "first_group"
+ }
-page = """
+ page = """
# Filled Area - Stacked
<|{data}|chart|mode=none|x=Month|y={items}|options={options}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/funnel-area-multiple.py b/doc/gui/examples/charts/funnel-area-multiple.py
index 0a6ab2be80..b6aad0f9cc 100644
--- a/doc/gui/examples/charts/funnel-area-multiple.py
+++ b/doc/gui/examples/charts/funnel-area-multiple.py
@@ -15,79 +15,80 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-data = {
- "John_us": [500, 450, 340, 230, 220, 110],
- "John_eu": [600, 500, 400, 300, 200, 100],
- "Robert_us": [510, 480, 440, 330, 220, 100],
- "Robert_eu": [360, 250, 240, 130, 120, 60],
-}
+if __name__ == "__main__":
+ data = {
+ "John_us": [500, 450, 340, 230, 220, 110],
+ "John_eu": [600, 500, 400, 300, 200, 100],
+ "Robert_us": [510, 480, 440, 330, 220, 100],
+ "Robert_eu": [360, 250, 240, 130, 120, 60],
+ }
-# Values for each trace
-values = ["John_us", "John_eu", "Robert_us", "Robert_eu"]
+ # Values for each trace
+ values = ["John_us", "John_eu", "Robert_us", "Robert_eu"]
-options = [
- # For John/US
- {
- "scalegroup": "first",
- "textinfo": "value",
- "title": {
- # "position": "top",
- "text": "John in the U.S."
+ options = [
+ # For John/US
+ {
+ "scalegroup": "first",
+ "textinfo": "value",
+ "title": {
+ # "position": "top",
+ "text": "John in the U.S."
+ },
+ # Lower-left corner
+ "domain": {"x": [0, 0.5], "y": [0, 0.5]},
},
- # Lower-left corner
- "domain": {"x": [0, 0.5], "y": [0, 0.5]},
- },
- # For John/EU
- {
- "scalegroup": "first",
- "textinfo": "value",
- "title": {
- # "position": "top",
- "text": "John in the E.U."
+ # For John/EU
+ {
+ "scalegroup": "first",
+ "textinfo": "value",
+ "title": {
+ # "position": "top",
+ "text": "John in the E.U."
+ },
+ # Upper-left corner
+ "domain": {"x": [0, 0.5], "y": [0.55, 1]},
},
- # Upper-left corner
- "domain": {"x": [0, 0.5], "y": [0.55, 1]},
- },
- # For Robert/US
- {
- "scalegroup": "second",
- "textinfo": "value",
- "title": {
- # "position": "top",
- "text": "Robert in the U.S."
+ # For Robert/US
+ {
+ "scalegroup": "second",
+ "textinfo": "value",
+ "title": {
+ # "position": "top",
+ "text": "Robert in the U.S."
+ },
+ # Lower-right corner
+ "domain": {"x": [0.51, 1], "y": [0, 0.5]},
},
- # Lower-right corner
- "domain": {"x": [0.51, 1], "y": [0, 0.5]},
- },
- # For Robert/EU
- {
- "scalegroup": "second",
- "textinfo": "value",
- "title": {
- # "position": "top",
- "text": "Robert in the E.U."
+ # For Robert/EU
+ {
+ "scalegroup": "second",
+ "textinfo": "value",
+ "title": {
+ # "position": "top",
+ "text": "Robert in the E.U."
+ },
+ # Upper-right corner
+ "domain": {"x": [0.51, 1], "y": [0.51, 1]},
},
- # Upper-right corner
- "domain": {"x": [0.51, 1], "y": [0.51, 1]},
- },
-]
+ ]
-layout = {
- "title": "Sales per Salesman per Region",
- "showlegend": False,
- # Draw frames around each trace
- "shapes": [
- {"x0": 0, "x1": 0.5, "y0": 0, "y1": 0.5},
- {"x0": 0, "x1": 0.5, "y0": 0.52, "y1": 1},
- {"x0": 0.52, "x1": 1, "y0": 0, "y1": 0.5},
- {"x0": 0.52, "x1": 1, "y0": 0.52, "y1": 1},
- ],
-}
+ layout = {
+ "title": "Sales per Salesman per Region",
+ "showlegend": False,
+ # Draw frames around each trace
+ "shapes": [
+ {"x0": 0, "x1": 0.5, "y0": 0, "y1": 0.5},
+ {"x0": 0, "x1": 0.5, "y0": 0.52, "y1": 1},
+ {"x0": 0.52, "x1": 1, "y0": 0, "y1": 0.5},
+ {"x0": 0.52, "x1": 1, "y0": 0.52, "y1": 1},
+ ],
+ }
-page = """
+ page = """
# Funnel Area - Multiple Charts
<|{data}|chart|type=funnelarea|values={values}|options={options}|layout={layout}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/funnel-area.py b/doc/gui/examples/charts/funnel-area.py
index 426bf61828..0654699036 100644
--- a/doc/gui/examples/charts/funnel-area.py
+++ b/doc/gui/examples/charts/funnel-area.py
@@ -15,19 +15,23 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-data = {"Types": ["Visits", "Downloads", "Prospects", "Invoiced", "Closed"], "Visits": [13873, 10533, 5443, 2703, 908]}
+if __name__ == "__main__":
+ data = {
+ "Types": ["Visits", "Downloads", "Prospects", "Invoiced", "Closed"],
+ "Visits": [13873, 10533, 5443, 2703, 908],
+ }
-layout = {
- # Stack the areas
- "funnelmode": "stack",
- # Hide the legend
- "showlegend": False,
-}
+ layout = {
+ # Stack the areas
+ "funnelmode": "stack",
+ # Hide the legend
+ "showlegend": False,
+ }
-page = """
+ page = """
# Funnel - Area
<|{data}|chart|type=funnelarea|values=Visits|text=Types|layout={layout}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/funnel-multiple.py b/doc/gui/examples/charts/funnel-multiple.py
index 809ff11d5f..3a9f5dadbe 100644
--- a/doc/gui/examples/charts/funnel-multiple.py
+++ b/doc/gui/examples/charts/funnel-multiple.py
@@ -15,23 +15,24 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-data = {
- "Types": ["Website visit", "Downloads", "Prospects", "Invoice sent", "Closed"],
- "Visits_us": [13873, 10533, 5443, 2703, 908],
- "Visits_eu": [7063, 4533, 3443, 1003, 1208],
- "Visits_ap": [6873, 2533, 3443, 1703, 508],
-}
+if __name__ == "__main__":
+ data = {
+ "Types": ["Website visit", "Downloads", "Prospects", "Invoice sent", "Closed"],
+ "Visits_us": [13873, 10533, 5443, 2703, 908],
+ "Visits_eu": [7063, 4533, 3443, 1003, 1208],
+ "Visits_ap": [6873, 2533, 3443, 1703, 508],
+ }
-# Columns for each trace
-x = ["Visits_us", "Visits_eu", "Visits_ap"]
+ # Columns for each trace
+ x = ["Visits_us", "Visits_eu", "Visits_ap"]
-# Legend text for each trace
-names = ["US", "EU", "AP"]
+ # Legend text for each trace
+ names = ["US", "EU", "AP"]
-page = """
+ page = """
# Funnel - Multiple traces
<|{data}|chart|type=funnel|x={x}|y=Types|name={names}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/funnel-simple.py b/doc/gui/examples/charts/funnel-simple.py
index 22d8c33ff4..0066ab6c7e 100644
--- a/doc/gui/examples/charts/funnel-simple.py
+++ b/doc/gui/examples/charts/funnel-simple.py
@@ -15,13 +15,14 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-# Data set
-data = {"Opps": ["Hot leads", "Doc sent", "Quote", "Closed Won"], "Visits": [316, 238, 125, 83]}
+if __name__ == "__main__":
+ # Data set
+ data = {"Opps": ["Hot leads", "Doc sent", "Quote", "Closed Won"], "Visits": [316, 238, 125, 83]}
-page = """
+ page = """
# Funnel Chart - Simple
<|{data}|chart|type=funnel|x=Visits|y=Opps|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/funnel-styling.py b/doc/gui/examples/charts/funnel-styling.py
index a8bb0e9bb1..418169e1e5 100644
--- a/doc/gui/examples/charts/funnel-styling.py
+++ b/doc/gui/examples/charts/funnel-styling.py
@@ -15,27 +15,28 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-data = {
- "Types": ["Website visit", "Downloads", "Prospects", "Invoice sent", "Closed"],
- "Visits": [13873, 10533, 5443, 2703, 908],
-}
+if __name__ == "__main__":
+ data = {
+ "Types": ["Website visit", "Downloads", "Prospects", "Invoice sent", "Closed"],
+ "Visits": [13873, 10533, 5443, 2703, 908],
+ }
-marker = {
- # Boxes are filled with a blue gradient color
- "color": ["hsl(210,50%,50%)", "hsl(210,60%,60%)", "hsl(210,70%,70%)", "hsl(210,80%,80%)", "hsl(210,90%,90%)"],
- # Lines get thicker, with an orange-to-green gradient color
- "line": {"width": [1, 1, 2, 3, 4], "color": ["f5720a", "f39c1d", "f0cc3d", "aadb12", "8cb709"]},
-}
+ marker = {
+ # Boxes are filled with a blue gradient color
+ "color": ["hsl(210,50%,50%)", "hsl(210,60%,60%)", "hsl(210,70%,70%)", "hsl(210,80%,80%)", "hsl(210,90%,90%)"],
+ # Lines get thicker, with an orange-to-green gradient color
+ "line": {"width": [1, 1, 2, 3, 4], "color": ["f5720a", "f39c1d", "f0cc3d", "aadb12", "8cb709"]},
+ }
-options = {
- # Lines connecting boxes are thick, dotted and green
- "connector": {"line": {"color": "green", "dash": "dot", "width": 4}}
-}
+ options = {
+ # Lines connecting boxes are thick, dotted and green
+ "connector": {"line": {"color": "green", "dash": "dot", "width": 4}}
+ }
-page = """
+ page = """
# Funnel Chart - Custom markers
<|{data}|chart|type=funnel|x=Visits|y=Types|marker={marker}|options={options}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/gantt-simple.py b/doc/gui/examples/charts/gantt-simple.py
index af9dadee5b..017a1c7d33 100644
--- a/doc/gui/examples/charts/gantt-simple.py
+++ b/doc/gui/examples/charts/gantt-simple.py
@@ -17,42 +17,43 @@
from taipy.gui import Gui
-# Tasks definitions
-tasks = ["Plan", "Research", "Design", "Implement", "Test", "Deliver"]
-# Task durations, in days
-durations = [50, 30, 30, 40, 15, 10]
-# Planned start dates of tasks
-start_dates = [
- datetime.date(2022, 10, 15), # Plan
- datetime.date(2022, 11, 7), # Research
- datetime.date(2022, 12, 1), # Design
- datetime.date(2022, 12, 20), # Implement
- datetime.date(2023, 1, 15), # Test
- datetime.date(2023, 2, 1), # Deliver
-]
-
-epoch = datetime.date(1970, 1, 1)
-
-data = {
- "start": start_dates,
- "Task": tasks,
- # Compute the time span as adatetime (relative to January 1st, 1970)
- "Date": [epoch + datetime.timedelta(days=duration) for duration in durations],
-}
-
-layout = {
- "yaxis": {
- # Sort tasks from top to bottom
- "autorange": "reversed",
- # Remove title
- "title": {"text": ""},
- },
-}
-
-page = """
+if __name__ == "__main__":
+ # Tasks definitions
+ tasks = ["Plan", "Research", "Design", "Implement", "Test", "Deliver"]
+ # Task durations, in days
+ durations = [50, 30, 30, 40, 15, 10]
+ # Planned start dates of tasks
+ start_dates = [
+ datetime.date(2022, 10, 15), # Plan
+ datetime.date(2022, 11, 7), # Research
+ datetime.date(2022, 12, 1), # Design
+ datetime.date(2022, 12, 20), # Implement
+ datetime.date(2023, 1, 15), # Test
+ datetime.date(2023, 2, 1), # Deliver
+ ]
+
+ epoch = datetime.date(1970, 1, 1)
+
+ data = {
+ "start": start_dates,
+ "Task": tasks,
+ # Compute the time span as adatetime (relative to January 1st, 1970)
+ "Date": [epoch + datetime.timedelta(days=duration) for duration in durations],
+ }
+
+ layout = {
+ "yaxis": {
+ # Sort tasks from top to bottom
+ "autorange": "reversed",
+ # Remove title
+ "title": {"text": ""},
+ },
+ }
+
+ page = """
# Gantt - Simple
<|{data}|chart|type=bar|orientation=h|y=Task|x=Date|base=start|layout={layout}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/heatmap-annotated.py b/doc/gui/examples/charts/heatmap-annotated.py
index 3b12399fc1..4427594f0d 100644
--- a/doc/gui/examples/charts/heatmap-annotated.py
+++ b/doc/gui/examples/charts/heatmap-annotated.py
@@ -17,56 +17,57 @@
from taipy.gui import Gui
-data: Dict[str, List] = {
- "Temperatures": [
- [17.2, 27.4, 28.6, 21.5],
- [5.6, 15.1, 20.2, 8.1],
- [26.6, 22.8, 21.8, 24.0],
- [22.3, 15.5, 13.4, 19.6],
- ],
- "Cities": ["Hanoi", "Paris", "Rio", "Sydney"],
- "Seasons": ["Winter", "Spring", "Summer", "Autumn"],
-}
+if __name__ == "__main__":
+ data: Dict[str, List] = {
+ "Temperatures": [
+ [17.2, 27.4, 28.6, 21.5],
+ [5.6, 15.1, 20.2, 8.1],
+ [26.6, 22.8, 21.8, 24.0],
+ [22.3, 15.5, 13.4, 19.6],
+ ],
+ "Cities": ["Hanoi", "Paris", "Rio", "Sydney"],
+ "Seasons": ["Winter", "Spring", "Summer", "Autumn"],
+ }
-layout = {
- # This array contains the information we want to display in the cells
- # These are filled later
- "annotations": [],
- # No ticks on the x axis, show labels on top the of the chart
- "xaxis": {"ticks": "", "side": "top"},
- # No ticks on the y axis
- # Add a space character for a small margin with the text
- "yaxis": {"ticks": "", "ticksuffix": " "},
-}
+ layout = {
+ # This array contains the information we want to display in the cells
+ # These are filled later
+ "annotations": [],
+ # No ticks on the x axis, show labels on top the of the chart
+ "xaxis": {"ticks": "", "side": "top"},
+ # No ticks on the y axis
+ # Add a space character for a small margin with the text
+ "yaxis": {"ticks": "", "ticksuffix": " "},
+ }
-seasons = data["Seasons"]
-cities = data["Cities"]
-# Iterate over all cities
-for city in range(len(cities)):
- # Iterate over all seasons
- for season in range(len(seasons)):
- temperature = data["Temperatures"][city][season]
- # Create the annotation
- annotation = {
- # The name of the season
- "x": seasons[season],
- # The name of the city
- "y": cities[city],
- # The temperature, as a formatted string
- "text": f"{temperature}\N{DEGREE SIGN}C",
- # Change the text color depending on the temperature
- # so it results in a better contrast
- "font": {"color": "white" if temperature < 14 else "black"},
- # Remove the annotation arrow
- "showarrow": False,
- }
- # Add the annotation to the layout's annotations array
- layout["annotations"].append(annotation) # type: ignore[attr-defined]
+ seasons = data["Seasons"]
+ cities = data["Cities"]
+ # Iterate over all cities
+ for city in range(len(cities)):
+ # Iterate over all seasons
+ for season in range(len(seasons)):
+ temperature = data["Temperatures"][city][season]
+ # Create the annotation
+ annotation = {
+ # The name of the season
+ "x": seasons[season],
+ # The name of the city
+ "y": cities[city],
+ # The temperature, as a formatted string
+ "text": f"{temperature}\N{DEGREE SIGN}C",
+ # Change the text color depending on the temperature
+ # so it results in a better contrast
+ "font": {"color": "white" if temperature < 14 else "black"},
+ # Remove the annotation arrow
+ "showarrow": False,
+ }
+ # Add the annotation to the layout's annotations array
+ layout["annotations"].append(annotation) # type: ignore[attr-defined]
-page = """
+ page = """
## Heatmap - Annotated
<|{data}|chart|type=heatmap|z=Temperatures|x=Seasons|y=Cities|layout={layout}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/heatmap-colorscale.py b/doc/gui/examples/charts/heatmap-colorscale.py
index 973d035bf1..579187ef15 100644
--- a/doc/gui/examples/charts/heatmap-colorscale.py
+++ b/doc/gui/examples/charts/heatmap-colorscale.py
@@ -15,23 +15,24 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-data = {
- "Temperatures": [
- [17.2, 27.4, 28.6, 21.5],
- [5.6, 15.1, 20.2, 8.1],
- [26.6, 22.8, 21.8, 24.0],
- [22.3, 15.5, 13.4, 19.6],
- ],
- "Cities": ["Hanoi", "Paris", "Rio", "Sydney"],
- "Seasons": ["Winter", "Spring", "Summer", "Autumn"],
-}
+if __name__ == "__main__":
+ data = {
+ "Temperatures": [
+ [17.2, 27.4, 28.6, 21.5],
+ [5.6, 15.1, 20.2, 8.1],
+ [26.6, 22.8, 21.8, 24.0],
+ [22.3, 15.5, 13.4, 19.6],
+ ],
+ "Cities": ["Hanoi", "Paris", "Rio", "Sydney"],
+ "Seasons": ["Winter", "Spring", "Summer", "Autumn"],
+ }
-options = {"colorscale": "Portland"}
+ options = {"colorscale": "Portland"}
-page = """
+ page = """
# Heatmap - Colorscale
<|{data}|chart|type=heatmap|z=Temperatures|x=Seasons|y=Cities|options={options}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/heatmap-drawing-on-top.py b/doc/gui/examples/charts/heatmap-drawing-on-top.py
index af70d2fcf4..9a54903922 100644
--- a/doc/gui/examples/charts/heatmap-drawing-on-top.py
+++ b/doc/gui/examples/charts/heatmap-drawing-on-top.py
@@ -26,66 +26,67 @@ def spiral(th):
return (r * numpy.cos(th), r * numpy.sin(th))
-# Prepare Golden spiral data as a parametric curve
-(x, y) = spiral(numpy.linspace(-numpy.pi / 13, 4 * numpy.pi, 1000))
+if __name__ == "__main__":
+ # Prepare Golden spiral data as a parametric curve
+ (x, y) = spiral(numpy.linspace(-numpy.pi / 13, 4 * numpy.pi, 1000))
-# Prepare the heatmap x and y cell sizes along the axes
-golden_ratio = (1 + numpy.sqrt(5)) / 2.0 # Golden ratio
-grid_x = [0, 1, 1 + (1 / (golden_ratio**4)), 1 + (1 / (golden_ratio**3)), golden_ratio]
-grid_y = [
- 0,
- 1 / (golden_ratio**3),
- 1 / golden_ratio**3 + 1 / golden_ratio**4,
- 1 / (golden_ratio**2),
- 1,
-]
+ # Prepare the heatmap x and y cell sizes along the axes
+ golden_ratio = (1 + numpy.sqrt(5)) / 2.0 # Golden ratio
+ grid_x = [0, 1, 1 + (1 / (golden_ratio**4)), 1 + (1 / (golden_ratio**3)), golden_ratio]
+ grid_y = [
+ 0,
+ 1 / (golden_ratio**3),
+ 1 / golden_ratio**3 + 1 / golden_ratio**4,
+ 1 / (golden_ratio**2),
+ 1,
+ ]
-# Main value is based on the Fibonacci sequence
-z = [[13, 3, 3, 5], [13, 2, 1, 5], [13, 10, 11, 12], [13, 8, 8, 8]]
+ # Main value is based on the Fibonacci sequence
+ z = [[13, 3, 3, 5], [13, 2, 1, 5], [13, 10, 11, 12], [13, 8, 8, 8]]
-# Group all data sets in a single array
-data = [
- {
- "z": z,
- },
- {"x": numpy.sort(grid_x), "y": numpy.sort(grid_y)},
- {
- "xSpiral": -x + x[0],
- "ySpiral": y - y[0],
- },
-]
+ # Group all data sets in a single array
+ data = [
+ {
+ "z": z,
+ },
+ {"x": numpy.sort(grid_x), "y": numpy.sort(grid_y)},
+ {
+ "xSpiral": -x + x[0],
+ "ySpiral": y - y[0],
+ },
+ ]
-# Axis template: hide all ticks, lines and labels
-axis = {
- "range": [0, 2.0],
- "showgrid": False,
- "zeroline": False,
- "showticklabels": False,
- "ticks": "",
- "title": "",
-}
+ # Axis template: hide all ticks, lines and labels
+ axis = {
+ "range": [0, 2.0],
+ "showgrid": False,
+ "zeroline": False,
+ "showticklabels": False,
+ "ticks": "",
+ "title": "",
+ }
-layout = {
- # Use the axis template for both x and y axes
- "xaxis": axis,
- "yaxis": axis,
-}
+ layout = {
+ # Use the axis template for both x and y axes
+ "xaxis": axis,
+ "yaxis": axis,
+ }
-options = {
- # Hide the color scale of the heatmap
- "showscale": False
-}
+ options = {
+ # Hide the color scale of the heatmap
+ "showscale": False
+ }
-# Chart holds two traces, with different types
-types = ["heatmap", "scatter"]
-# x and y values for both traces
-xs = ["1/x", "2/xSpiral"]
-ys = ["1/y", "2/ySpiral"]
+ # Chart holds two traces, with different types
+ types = ["heatmap", "scatter"]
+ # x and y values for both traces
+ xs = ["1/x", "2/xSpiral"]
+ ys = ["1/y", "2/ySpiral"]
-page = """
+ page = """
## Heatmap - Drawing on top
<|{data}|chart|type={types}|z[1]=0/z|x={xs}|y={ys}|layout={layout}|options={options}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/heatmap-simple.py b/doc/gui/examples/charts/heatmap-simple.py
index 3d7b9f1540..b780e95904 100644
--- a/doc/gui/examples/charts/heatmap-simple.py
+++ b/doc/gui/examples/charts/heatmap-simple.py
@@ -15,21 +15,22 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-data = {
- "Temperatures": [
- [17.2, 27.4, 28.6, 21.5],
- [5.6, 15.1, 20.2, 8.1],
- [26.6, 22.8, 21.8, 24.0],
- [22.3, 15.5, 13.4, 19.6],
- ],
- "Cities": ["Hanoi", "Paris", "Rio", "Sydney"],
- "Seasons": ["Winter", "Spring", "Summer", "Autumn"],
-}
+if __name__ == "__main__":
+ data = {
+ "Temperatures": [
+ [17.2, 27.4, 28.6, 21.5],
+ [5.6, 15.1, 20.2, 8.1],
+ [26.6, 22.8, 21.8, 24.0],
+ [22.3, 15.5, 13.4, 19.6],
+ ],
+ "Cities": ["Hanoi", "Paris", "Rio", "Sydney"],
+ "Seasons": ["Winter", "Spring", "Summer", "Autumn"],
+ }
-page = """
+ page = """
# Heatmap - Basic
<|{data}|chart|type=heatmap|z=Temperatures|x=Seasons|y=Cities|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/heatmap-unbalanced.py b/doc/gui/examples/charts/heatmap-unbalanced.py
index a6323f864a..a6ea7b17d9 100644
--- a/doc/gui/examples/charts/heatmap-unbalanced.py
+++ b/doc/gui/examples/charts/heatmap-unbalanced.py
@@ -15,24 +15,25 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-data = [
- {
- "Temperatures": [
- [17.2, 27.4, 28.6, 21.5],
- [5.6, 15.1, 20.2, 8.1],
- [26.6, 22.8, 21.8, 24.0],
- [22.3, 15.5, 13.4, 19.6],
- [3.9, 18.9, 25.7, 9.8],
- ],
- "Cities": ["Hanoi", "Paris", "Rio", "Sydney", "Washington"],
- },
- {"Seasons": ["Winter", "Spring", "Summer", "Autumn"]},
-]
+if __name__ == "__main__":
+ data = [
+ {
+ "Temperatures": [
+ [17.2, 27.4, 28.6, 21.5],
+ [5.6, 15.1, 20.2, 8.1],
+ [26.6, 22.8, 21.8, 24.0],
+ [22.3, 15.5, 13.4, 19.6],
+ [3.9, 18.9, 25.7, 9.8],
+ ],
+ "Cities": ["Hanoi", "Paris", "Rio", "Sydney", "Washington"],
+ },
+ {"Seasons": ["Winter", "Spring", "Summer", "Autumn"]},
+ ]
-page = """
+ page = """
# Heatmap - Unbalanced
<|{data}|chart|type=heatmap|z=0/Temperatures|x=1/Seasons|y=0/Cities|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/heatmap-unequal-cell-sizes.py b/doc/gui/examples/charts/heatmap-unequal-cell-sizes.py
index e10c2774fe..69a9b1f5d9 100644
--- a/doc/gui/examples/charts/heatmap-unequal-cell-sizes.py
+++ b/doc/gui/examples/charts/heatmap-unequal-cell-sizes.py
@@ -19,47 +19,48 @@
from taipy.gui import Gui
-grid_size = 10
-data = [
- {
- # z is set to:
- # - 0 if row+col is a multiple of 4
- # - 1 if row+col is a multiple of 2
- # - 0.5 otherwise
- "z": [
- [0.0 if (row + col) % 4 == 0 else 1 if (row + col) % 2 == 0 else 0.5 for col in range(grid_size)]
- for row in range(grid_size)
- ]
- },
- {
- # A series of coordinates, growing exponentially
- "x": [0] + list(accumulate(np.logspace(0, 1, grid_size))),
- # A series of coordinates, shrinking exponentially
- "y": [0] + list(accumulate(np.logspace(1, 0, grid_size))),
- },
-]
+if __name__ == "__main__":
+ grid_size = 10
+ data = [
+ {
+ # z is set to:
+ # - 0 if row+col is a multiple of 4
+ # - 1 if row+col is a multiple of 2
+ # - 0.5 otherwise
+ "z": [
+ [0.0 if (row + col) % 4 == 0 else 1 if (row + col) % 2 == 0 else 0.5 for col in range(grid_size)]
+ for row in range(grid_size)
+ ]
+ },
+ {
+ # A series of coordinates, growing exponentially
+ "x": [0] + list(accumulate(np.logspace(0, 1, grid_size))),
+ # A series of coordinates, shrinking exponentially
+ "y": [0] + list(accumulate(np.logspace(1, 0, grid_size))),
+ },
+ ]
-# Axis template used in the layout object
-axis_template = {
- # Don't show any line or tick or label
- "showgrid": False,
- "zeroline": False,
- "ticks": "",
- "showticklabels": False,
- "visible": False,
-}
+ # Axis template used in the layout object
+ axis_template = {
+ # Don't show any line or tick or label
+ "showgrid": False,
+ "zeroline": False,
+ "ticks": "",
+ "showticklabels": False,
+ "visible": False,
+ }
-layout = {"xaxis": axis_template, "yaxis": axis_template}
+ layout = {"xaxis": axis_template, "yaxis": axis_template}
-options = {
- # Remove the color scale display
- "showscale": False
-}
+ options = {
+ # Remove the color scale display
+ "showscale": False
+ }
-page = """
+ page = """
## Heatmap - Unequal block sizes
<|{data}|chart|type=heatmap|z=0/z|x=1/x|y=1/y|layout={layout}|options={options}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/histogram-binning-function.py b/doc/gui/examples/charts/histogram-binning-function.py
index 9e479ada6b..a5ce5f37ff 100644
--- a/doc/gui/examples/charts/histogram-binning-function.py
+++ b/doc/gui/examples/charts/histogram-binning-function.py
@@ -15,41 +15,42 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-# Initial data set. y = count_of(x)
-samples = {"x": ["Apples", "Apples", "Apples", "Oranges", "Bananas", "Oranges"], "y": [5, 10, 3, 8, 5, 2]}
+if __name__ == "__main__":
+ # Initial data set. y = count_of(x)
+ samples = {"x": ["Apples", "Apples", "Apples", "Oranges", "Bananas", "Oranges"], "y": [5, 10, 3, 8, 5, 2]}
-# Create a data set array to allow for two traces
-data = [samples, samples]
+ # Create a data set array to allow for two traces
+ data = [samples, samples]
-# Gather those settings in a single dictionary
-properties = {
- # 'x' of the first trace is the 'x' data from the first element of data
- "x[1]": "0/x",
- # 'y' of the first trace is the 'y' data from the first element of data
- "y[1]": "0/y",
- # 'x' of the second trace is the 'x' data from the second element of data
- "x[2]": "1/x",
- # 'y' of the second trace is the 'y' data from the second element of data
- "y[2]": "1/y",
- # Data set colors
- "color": ["#cd5c5c", "#505070"],
- # Data set names (for the legend)
- "name": ["Count", "Sum"],
- # Configure the binning functions
- "options": [
- # First trace: count the bins
- {"histfunc": "count"},
- # Second trace: sum the bin occurrences
- {"histfunc": "sum"},
- ],
- # Set x axis name
- "layout": {"xaxis": {"title": "Fruit"}},
-}
+ # Gather those settings in a single dictionary
+ properties = {
+ # 'x' of the first trace is the 'x' data from the first element of data
+ "x[1]": "0/x",
+ # 'y' of the first trace is the 'y' data from the first element of data
+ "y[1]": "0/y",
+ # 'x' of the second trace is the 'x' data from the second element of data
+ "x[2]": "1/x",
+ # 'y' of the second trace is the 'y' data from the second element of data
+ "y[2]": "1/y",
+ # Data set colors
+ "color": ["#cd5c5c", "#505070"],
+ # Data set names (for the legend)
+ "name": ["Count", "Sum"],
+ # Configure the binning functions
+ "options": [
+ # First trace: count the bins
+ {"histfunc": "count"},
+ # Second trace: sum the bin occurrences
+ {"histfunc": "sum"},
+ ],
+ # Set x axis name
+ "layout": {"xaxis": {"title": "Fruit"}},
+ }
-page = """
+ page = """
# Histogram - Binning function
<|{data}|chart|type=histogram|properties={properties}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/histogram-cumulative.py b/doc/gui/examples/charts/histogram-cumulative.py
index 84a5db5119..a8c8bcebc7 100644
--- a/doc/gui/examples/charts/histogram-cumulative.py
+++ b/doc/gui/examples/charts/histogram-cumulative.py
@@ -17,18 +17,19 @@
from taipy.gui import Gui
-# Random data set
-data = [random.random() for _ in range(500)]
+if __name__ == "__main__":
+ # Random data set
+ data = [random.random() for _ in range(500)]
-options = {
- # Enable the cumulative histogram
- "cumulative": {"enabled": True}
-}
+ options = {
+ # Enable the cumulative histogram
+ "cumulative": {"enabled": True}
+ }
-page = """
+ page = """
# Histogram - Cumulative
<|{data}|chart|type=histogram|options={options}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/histogram-horizontal.py b/doc/gui/examples/charts/histogram-horizontal.py
index eb705dd976..a59546dc22 100644
--- a/doc/gui/examples/charts/histogram-horizontal.py
+++ b/doc/gui/examples/charts/histogram-horizontal.py
@@ -17,13 +17,14 @@
from taipy.gui import Gui
-# Random data set
-data = {"Count": [random.random() for _ in range(100)]}
+if __name__ == "__main__":
+ # Random data set
+ data = {"Count": [random.random() for _ in range(100)]}
-page = """
+ page = """
# Histograms - Horizontal
<|{data}|chart|type=histogram|y=Count|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/histogram-nbins.py b/doc/gui/examples/charts/histogram-nbins.py
index 52e2925c70..683b84b540 100644
--- a/doc/gui/examples/charts/histogram-nbins.py
+++ b/doc/gui/examples/charts/histogram-nbins.py
@@ -17,29 +17,30 @@
from taipy.gui import Gui
-# Random set of 100 samples
-samples = {"x": [random.gauss(mu=0.0, sigma=1.0) for _ in range(100)]}
+if __name__ == "__main__":
+ # Random set of 100 samples
+ samples = {"x": [random.gauss(mu=0.0, sigma=1.0) for _ in range(100)]}
-# Use the same data for both traces
-data = [samples, samples]
+ # Use the same data for both traces
+ data = [samples, samples]
-options = [
- # First data set displayed as green-ish, and 5 bins
- {"marker": {"color": "#4A4"}, "nbinsx": 5},
- # Second data set displayed as red-ish, and 25 bins
- {"marker": {"color": "#A33"}, "nbinsx": 25},
-]
+ options = [
+ # First data set displayed as green-ish, and 5 bins
+ {"marker": {"color": "#4A4"}, "nbinsx": 5},
+ # Second data set displayed as red-ish, and 25 bins
+ {"marker": {"color": "#A33"}, "nbinsx": 25},
+ ]
-layout = {
- # Overlay the two histograms
- "barmode": "overlay",
- # Hide the legend
- "showlegend": False,
-}
+ layout = {
+ # Overlay the two histograms
+ "barmode": "overlay",
+ # Hide the legend
+ "showlegend": False,
+ }
-page = """
+ page = """
# Histogram - NBins
<|{data}|chart|type=histogram|options={options}|layout={layout}|>
-"""
-Gui(page).run()
+ """
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/histogram-normalized.py b/doc/gui/examples/charts/histogram-normalized.py
index 1b8f737f1d..198f4442a2 100644
--- a/doc/gui/examples/charts/histogram-normalized.py
+++ b/doc/gui/examples/charts/histogram-normalized.py
@@ -17,16 +17,17 @@
from taipy.gui import Gui
-# Random data set
-data = [random.random() for _ in range(100)]
+if __name__ == "__main__":
+ # Random data set
+ data = [random.random() for _ in range(100)]
-# Normalize to show bin probabilities
-options = {"histnorm": "probability"}
+ # Normalize to show bin probabilities
+ options = {"histnorm": "probability"}
-page = """
+ page = """
# Histogram - Normalized
<|{data}|chart|type=histogram|options={options}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/histogram-overlay.py b/doc/gui/examples/charts/histogram-overlay.py
index 8d41f6ce67..71fb6eec11 100644
--- a/doc/gui/examples/charts/histogram-overlay.py
+++ b/doc/gui/examples/charts/histogram-overlay.py
@@ -17,26 +17,27 @@
from taipy.gui import Gui
-# Data set made of two series of random numbers
-data = [{"x": [random.random() + 1 for _ in range(100)]}, {"x": [random.random() + 1.1 for _ in range(100)]}]
+if __name__ == "__main__":
+ # Data set made of two series of random numbers
+ data = [{"x": [random.random() + 1 for _ in range(100)]}, {"x": [random.random() + 1.1 for _ in range(100)]}]
-options = [
- # First data set displayed as semi-transparent, green bars
- {"opacity": 0.5, "marker": {"color": "green"}},
- # Second data set displayed as semi-transparent, gray bars
- {"opacity": 0.5, "marker": {"color": "#888"}},
-]
+ options = [
+ # First data set displayed as semi-transparent, green bars
+ {"opacity": 0.5, "marker": {"color": "green"}},
+ # Second data set displayed as semi-transparent, gray bars
+ {"opacity": 0.5, "marker": {"color": "#888"}},
+ ]
-layout = {
- # Overlay the two histograms
- "barmode": "overlay",
- # Hide the legend
- "showlegend": False,
-}
+ layout = {
+ # Overlay the two histograms
+ "barmode": "overlay",
+ # Hide the legend
+ "showlegend": False,
+ }
-page = """
+ page = """
# Histogram - Overlay
<|{data}|chart|type=histogram|options={options}|layout={layout}|>
-"""
-Gui(page).run()
+ """
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/histogram-simple.py b/doc/gui/examples/charts/histogram-simple.py
index f26c01f7d8..7c2d9fc37b 100644
--- a/doc/gui/examples/charts/histogram-simple.py
+++ b/doc/gui/examples/charts/histogram-simple.py
@@ -17,13 +17,14 @@
from taipy import Gui
-# Random data set
-data = [random.gauss(0, 5) for _ in range(1000)]
+if __name__ == "__main__":
+ # Random data set
+ data = [random.gauss(0, 5) for _ in range(1000)]
-page = """
+ page = """
# Histogram - Simple
<|{data}|chart|type=histogram|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/histogram-stacked.py b/doc/gui/examples/charts/histogram-stacked.py
index 893f8264cd..3ba9f75ec1 100644
--- a/doc/gui/examples/charts/histogram-stacked.py
+++ b/doc/gui/examples/charts/histogram-stacked.py
@@ -17,21 +17,22 @@
from taipy.gui import Gui
-# Data set made of two series of random numbers
-data = {"A": [random.random() for _ in range(200)], "B": [random.random() for _ in range(200)]}
+if __name__ == "__main__":
+ # Data set made of two series of random numbers
+ data = {"A": [random.random() for _ in range(200)], "B": [random.random() for _ in range(200)]}
-# Names of the two traces
-names = ["A samples", "B samples"]
+ # Names of the two traces
+ names = ["A samples", "B samples"]
-layout = {
- # Make the histogram stack the data sets
- "barmode": "stack"
-}
+ layout = {
+ # Make the histogram stack the data sets
+ "barmode": "stack"
+ }
-page = """
+ page = """
# Histogram - Stacked
<|{data}|chart|type=histogram|x[1]=A|x[2]=B|name={names}|layout={layout}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/line-style.py b/doc/gui/examples/charts/line-style.py
index 8c4bbf1fce..2063e5b523 100644
--- a/doc/gui/examples/charts/line-style.py
+++ b/doc/gui/examples/charts/line-style.py
@@ -17,1117 +17,1118 @@
from taipy.gui import Gui
-dates = pandas.date_range("2023-01-01", periods=365, freq="D")
-temp = [
- -11.33333333,
- -6,
- -0.111111111,
- 1.444444444,
- 2.388888889,
- 4.555555556,
- 4.333333333,
- 0.666666667,
- 9,
- 9.611111111,
- -0.555555556,
- 1.833333333,
- -0.444444444,
- 2.166666667,
- -4,
- -12.05555556,
- -2.722222222,
- 5,
- 9.888888889,
- 6.611111111,
- -2.833333333,
- -3.277777778,
- -1.611111111,
- -1.388888889,
- 5.777777778,
- 2.166666667,
- -1.055555556,
- 1.777777778,
- 1.5,
- 8.444444444,
- 6.222222222,
- -2.5,
- -0.388888889,
- 6.111111111,
- -1.5,
- 2.666666667,
- -2.5,
- 0.611111111,
- 8.222222222,
- 2.333333333,
- -9.333333333,
- -7.666666667,
- -6.277777778,
- -0.611111111,
- 7.722222222,
- 6.111111111,
- -4,
- 3.388888889,
- 9.333333333,
- -6.333333333,
- -15,
- -12.94444444,
- -8.722222222,
- -6.222222222,
- -2.833333333,
- -2.5,
- 1.5,
- 3.444444444,
- 2.666666667,
- 0.888888889,
- 7.555555556,
- 12.66666667,
- 12.83333333,
- 1.777777778,
- -0.111111111,
- -1.055555556,
- 4.611111111,
- 11.16666667,
- 8.5,
- 0.5,
- 2.111111111,
- 4.722222222,
- 8.277777778,
- 10.66666667,
- 5.833333333,
- 5.555555556,
- 6.944444444,
- 1.722222222,
- 2.444444444,
- 6.111111111,
- 12.11111111,
- 15.55555556,
- 9.944444444,
- 10.27777778,
- 5.888888889,
- 1.388888889,
- 3.555555556,
- 1.222222222,
- 4.055555556,
- 7.833333333,
- 0.666666667,
- 10.05555556,
- 6.444444444,
- 4.555555556,
- 11,
- 3.555555556,
- -0.555555556,
- 11.83333333,
- 7.222222222,
- 10.16666667,
- 17.5,
- 14.55555556,
- 6.777777778,
- 3.611111111,
- 5.888888889,
- 10.05555556,
- 16.61111111,
- 5.5,
- 7.055555556,
- 10.5,
- 1.555555556,
- 6.166666667,
- 11.05555556,
- 5.111111111,
- 6.055555556,
- 11,
- 11.05555556,
- 14.72222222,
- 19.16666667,
- 16.5,
- 12.61111111,
- 8.277777778,
- 6.611111111,
- 10.38888889,
- 15.38888889,
- 17.22222222,
- 18.27777778,
- 18.72222222,
- 17.05555556,
- 19.72222222,
- 16.83333333,
- 12.66666667,
- 11.66666667,
- 12.88888889,
- 14.77777778,
- 18,
- 19.44444444,
- 16.5,
- 9.722222222,
- 7.888888889,
- 13.72222222,
- 17.55555556,
- 18.27777778,
- 20.11111111,
- 21.66666667,
- 23.38888889,
- 23.5,
- 16.94444444,
- 16.27777778,
- 18.61111111,
- 20.83333333,
- 24.61111111,
- 18.27777778,
- 17.88888889,
- 22.27777778,
- 25.94444444,
- 25.27777778,
- 24.72222222,
- 25.61111111,
- 23.94444444,
- 26.33333333,
- 22.05555556,
- 20.83333333,
- 24.5,
- 27.83333333,
- 25.61111111,
- 23.11111111,
- 19.27777778,
- 16.44444444,
- 19.44444444,
- 17.22222222,
- 19.44444444,
- 22.16666667,
- 21.77777778,
- 17.38888889,
- 17.22222222,
- 23.88888889,
- 28.44444444,
- 29.44444444,
- 29.61111111,
- 21.05555556,
- 18.55555556,
- 25.27777778,
- 26.55555556,
- 24.55555556,
- 23.38888889,
- 22.55555556,
- 27.05555556,
- 27.66666667,
- 26.66666667,
- 27.61111111,
- 26.66666667,
- 24.77777778,
- 23,
- 26.5,
- 23.11111111,
- 19.83333333,
- 22.27777778,
- 24.61111111,
- 27.05555556,
- 27.05555556,
- 27.94444444,
- 27.33333333,
- 22.05555556,
- 21.5,
- 22,
- 19.72222222,
- 20.27777778,
- 17.88888889,
- 18.55555556,
- 18.94444444,
- 20,
- 22.05555556,
- 23.22222222,
- 24.38888889,
- 24.5,
- 24.5,
- 21.22222222,
- 20.83333333,
- 20.61111111,
- 22.05555556,
- 23.77777778,
- 24.16666667,
- 24.22222222,
- 21.83333333,
- 21.33333333,
- 21.88888889,
- 22.44444444,
- 23.11111111,
- 20.44444444,
- 16.88888889,
- 15.77777778,
- 17.44444444,
- 17.72222222,
- 23.11111111,
- 24.55555556,
- 24.88888889,
- 25.11111111,
- 25.27777778,
- 19.5,
- 19.55555556,
- 24.05555556,
- 24.27777778,
- 21.05555556,
- 19.88888889,
- 20.66666667,
- 20.27777778,
- 17.66666667,
- 16.44444444,
- 15.88888889,
- 18.44444444,
- 22.44444444,
- 23,
- 24.72222222,
- 24.16666667,
- 25.94444444,
- 24.44444444,
- 23.33333333,
- 25.22222222,
- 25,
- 23.88888889,
- 23.72222222,
- 18.94444444,
- 16.22222222,
- 19.5,
- 21.22222222,
- 19.72222222,
- 13.22222222,
- 11.88888889,
- 16.55555556,
- 10.05555556,
- 12.16666667,
- 11.5,
- 10.22222222,
- 17.27777778,
- 21.72222222,
- 13.83333333,
- 13,
- 6.944444444,
- 6.388888889,
- 4.222222222,
- 2.5,
- 1.111111111,
- 3.055555556,
- 6.388888889,
- 10.44444444,
- -2,
- -2.222222222,
- 4.388888889,
- 8.333333333,
- 11.11111111,
- 12.66666667,
- 10.88888889,
- 12.83333333,
- 14.16666667,
- 12.55555556,
- 12.05555556,
- 11.22222222,
- 12.44444444,
- 14.38888889,
- 12,
- 15.83333333,
- 6.722222222,
- 2.5,
- 4.833333333,
- 7.5,
- 8.888888889,
- 4,
- 7.388888889,
- 3.888888889,
- 1.611111111,
- -0.333333333,
- -2,
- 4.833333333,
- -1.055555556,
- -5.611111111,
- -2.388888889,
- 5.722222222,
- 8.444444444,
- 5.277777778,
- 0.5,
- -2.5,
- 1.111111111,
- 2.111111111,
- 5.777777778,
- 7.555555556,
- 7.555555556,
- 4.111111111,
- -0.388888889,
- -1,
- 4.944444444,
- 9.444444444,
- 4.722222222,
- -0.166666667,
- 0.5,
- -2.444444444,
- -2.722222222,
- -2.888888889,
- -1.111111111,
- -4.944444444,
- -3.111111111,
- -1.444444444,
- -0.833333333,
- 2.333333333,
- 6.833333333,
- 4.722222222,
- 0.888888889,
- 0.666666667,
- 4.611111111,
- 4.666666667,
- 4.444444444,
- 6.777777778,
- 5.833333333,
- 0.5,
- 4.888888889,
- 1.444444444,
- -2.111111111,
- 2.444444444,
- -0.111111111,
- -2.555555556,
- -4.611111111,
- -8.666666667,
- -8.055555556,
- 1.555555556,
- -4.777777778,
-]
-min = [
- -14.33333333,
- -12.9,
- -3.311111111,
- -4.955555556,
- -3.611111111,
- 0.555555556,
- 1.133333333,
- -5.133333333,
- 2.3,
- 3.911111111,
- -7.055555556,
- -1.366666667,
- -4.844444444,
- -3.333333333,
- -6.1,
- -17.15555556,
- -4.822222222,
- 0.4,
- 3.488888889,
- 4.211111111,
- -6.433333333,
- -7.577777778,
- -7.111111111,
- -7.088888889,
- 1.577777778,
- -3.433333333,
- -4.355555556,
- -0.722222222,
- -2.1,
- 2.044444444,
- 2.222222222,
- -4.7,
- -2.388888889,
- 4.111111111,
- -5,
- -0.133333333,
- -5.3,
- -2.288888889,
- 6.022222222,
- -1.766666667,
- -15.53333333,
- -13.46666667,
- -9.277777778,
- -3.211111111,
- 3.122222222,
- 1.411111111,
- -6.8,
- 1.388888889,
- 5.333333333,
- -9.833333333,
- -22,
- -19.74444444,
- -14.62222222,
- -9.622222222,
- -8.433333333,
- -8.5,
- -2.8,
- 0.144444444,
- -3.233333333,
- -3.411111111,
- 5.355555556,
- 8.366666667,
- 7.333333333,
- -0.322222222,
- -6.911111111,
- -4.955555556,
- -1.588888889,
- 4.966666667,
- 2.5,
- -4.3,
- -1.888888889,
- -1.777777778,
- 2.477777778,
- 3.766666667,
- 0.533333333,
- 1.755555556,
- 2.944444444,
- -4.977777778,
- -4.055555556,
- 1.711111111,
- 6.011111111,
- 13.15555556,
- 5.044444444,
- 6.577777778,
- 3.388888889,
- -1.011111111,
- -0.244444444,
- -2.477777778,
- -1.444444444,
- 2.533333333,
- -6.333333333,
- 4.255555556,
- 1.944444444,
- 0.855555556,
- 5.4,
- -1.244444444,
- -2.855555556,
- 4.833333333,
- 2.722222222,
- 6.466666667,
- 14.5,
- 9.855555556,
- 2.277777778,
- -3.188888889,
- 0.788888889,
- 4.155555556,
- 13.41111111,
- 2.3,
- 0.855555556,
- 8.4,
- -0.444444444,
- 1.166666667,
- 7.755555556,
- -0.288888889,
- -0.244444444,
- 8.7,
- 5.555555556,
- 8.222222222,
- 16.26666667,
- 14.4,
- 5.711111111,
- 5.177777778,
- 4.511111111,
- 5.988888889,
- 10.08888889,
- 10.52222222,
- 15.37777778,
- 12.42222222,
- 14.95555556,
- 15.22222222,
- 11.93333333,
- 6.866666667,
- 6.866666667,
- 9.688888889,
- 11.57777778,
- 12,
- 13.34444444,
- 11.3,
- 6.222222222,
- 2.088888889,
- 8.322222222,
- 14.05555556,
- 13.77777778,
- 16.91111111,
- 16.86666667,
- 16.68888889,
- 18.5,
- 12.54444444,
- 12.27777778,
- 15.91111111,
- 15.03333333,
- 22.11111111,
- 15.77777778,
- 13.68888889,
- 17.87777778,
- 19.94444444,
- 18.57777778,
- 18.62222222,
- 20.11111111,
- 17.14444444,
- 20.43333333,
- 15.75555556,
- 17.33333333,
- 20,
- 23.03333333,
- 19.61111111,
- 18.51111111,
- 15.27777778,
- 11.44444444,
- 13.64444444,
- 11.42222222,
- 16.14444444,
- 19.76666667,
- 18.77777778,
- 11.88888889,
- 12.32222222,
- 20.78888889,
- 25.04444444,
- 25.34444444,
- 23.81111111,
- 18.35555556,
- 11.85555556,
- 18.37777778,
- 23.15555556,
- 21.55555556,
- 17.48888889,
- 19.05555556,
- 20.25555556,
- 23.86666667,
- 23.86666667,
- 21.41111111,
- 21.16666667,
- 18.67777778,
- 18.1,
- 24.4,
- 19.01111111,
- 17.13333333,
- 18.27777778,
- 21.71111111,
- 22.85555556,
- 22.65555556,
- 25.14444444,
- 24.13333333,
- 17.95555556,
- 14.7,
- 15.1,
- 16.02222222,
- 14.27777778,
- 11.18888889,
- 13.65555556,
- 16.74444444,
- 16.7,
- 17.65555556,
- 16.62222222,
- 21.68888889,
- 19.6,
- 18.6,
- 15.52222222,
- 18.53333333,
- 17.01111111,
- 17.75555556,
- 20.47777778,
- 17.76666667,
- 22.22222222,
- 18.23333333,
- 17.83333333,
- 15.38888889,
- 19.64444444,
- 17.81111111,
- 15.44444444,
- 14.88888889,
- 13.07777778,
- 15.24444444,
- 11.82222222,
- 20.81111111,
- 21.45555556,
- 18.98888889,
- 19.71111111,
- 19.27777778,
- 12.7,
- 15.05555556,
- 19.15555556,
- 20.77777778,
- 15.35555556,
- 17.68888889,
- 18.26666667,
- 15.47777778,
- 12.76666667,
- 10.54444444,
- 13.38888889,
- 12.54444444,
- 19.84444444,
- 19.5,
- 21.92222222,
- 17.86666667,
- 22.44444444,
- 19.64444444,
- 20.73333333,
- 22.02222222,
- 19,
- 20.48888889,
- 19.02222222,
- 16.44444444,
- 14.22222222,
- 16.3,
- 16.42222222,
- 17.22222222,
- 8.322222222,
- 8.288888889,
- 13.95555556,
- 5.555555556,
- 5.666666667,
- 7.7,
- 4.022222222,
- 11.77777778,
- 16.42222222,
- 11.83333333,
- 9.7,
- 0.044444444,
- 3.688888889,
- -2.077777778,
- 0.1,
- -5.388888889,
- -3.244444444,
- 0.688888889,
- 5.744444444,
- -7.7,
- -7.022222222,
- -0.211111111,
- 4.833333333,
- 8.111111111,
- 5.766666667,
- 7.888888889,
- 10.43333333,
- 11.56666667,
- 10.15555556,
- 7.155555556,
- 4.522222222,
- 7.144444444,
- 10.88888889,
- 9.5,
- 12.13333333,
- 4.022222222,
- -3.9,
- 1.433333333,
- 0.7,
- 3.188888889,
- -1.7,
- 3.588888889,
- -0.111111111,
- -2.788888889,
- -7.133333333,
- -5,
- 0.733333333,
- -7.555555556,
- -12.51111111,
- -8.188888889,
- 3.122222222,
- 2.944444444,
- 0.477777778,
- -3.2,
- -9.2,
- -4.788888889,
- -0.288888889,
- 1.077777778,
- 4.755555556,
- 5.455555556,
- 0.511111111,
- -3.888888889,
- -7.4,
- -1.355555556,
- 5.144444444,
- 0.122222222,
- -5.166666667,
- -5,
- -5.144444444,
- -8.822222222,
- -6.388888889,
- -6.811111111,
- -8.944444444,
- -10.11111111,
- -7.144444444,
- -5.133333333,
- -1.166666667,
- 1.833333333,
- -1.477777778,
- -1.811111111,
- -2.433333333,
- -1.188888889,
- -2.333333333,
- 0.744444444,
- 1.877777778,
- 1.333333333,
- -1.7,
- 0.888888889,
- -3.855555556,
- -8.211111111,
- -1.055555556,
- -4.211111111,
- -7.355555556,
- -8.111111111,
- -10.96666667,
- -13.05555556,
- -4.644444444,
- -7.577777778,
-]
-max = [
- -7.233333333,
- -1.6,
- 5.488888889,
- 7.744444444,
- 6.188888889,
- 6.555555556,
- 10.53333333,
- 6.766666667,
- 14.1,
- 14.11111111,
- 2.044444444,
- 4.633333333,
- 2.055555556,
- 8.666666667,
- -1.4,
- -5.555555556,
- 4.177777778,
- 11.8,
- 15.58888889,
- 12.31111111,
- 3.666666667,
- -0.977777778,
- 1.288888889,
- 4.211111111,
- 9.377777778,
- 5.266666667,
- 2.144444444,
- 3.977777778,
- 7.2,
- 11.94444444,
- 11.32222222,
- 4,
- 6.611111111,
- 8.211111111,
- 3.5,
- 8.866666667,
- 3.6,
- 3.711111111,
- 13.12222222,
- 7.833333333,
- -3.333333333,
- -2.166666667,
- -2.877777778,
- 5.188888889,
- 13.12222222,
- 12.11111111,
- -0.7,
- 6.688888889,
- 14.03333333,
- -2.433333333,
- -8.6,
- -8.244444444,
- -2.122222222,
- -2.722222222,
- 1.266666667,
- 2.8,
- 5.7,
- 6.944444444,
- 5.066666667,
- 5.688888889,
- 13.35555556,
- 16.66666667,
- 17.33333333,
- 7.277777778,
- 6.388888889,
- 1.344444444,
- 9.111111111,
- 17.96666667,
- 12.8,
- 5.8,
- 6.911111111,
- 6.822222222,
- 11.87777778,
- 13.16666667,
- 9.233333333,
- 8.655555556,
- 10.04444444,
- 7.022222222,
- 7.644444444,
- 8.311111111,
- 16.71111111,
- 18.85555556,
- 12.14444444,
- 13.27777778,
- 11.18888889,
- 7.088888889,
- 8.255555556,
- 7.522222222,
- 9.955555556,
- 9.933333333,
- 4.866666667,
- 15.25555556,
- 9.244444444,
- 9.755555556,
- 14,
- 8.955555556,
- 2.344444444,
- 17.43333333,
- 12.12222222,
- 13.46666667,
- 23,
- 18.45555556,
- 12.77777778,
- 7.211111111,
- 8.588888889,
- 14.35555556,
- 19.01111111,
- 12.4,
- 9.155555556,
- 15.6,
- 4.955555556,
- 8.966666667,
- 16.95555556,
- 9.511111111,
- 10.15555556,
- 16,
- 14.45555556,
- 21.02222222,
- 25.76666667,
- 20.5,
- 15.71111111,
- 11.67777778,
- 12.81111111,
- 12.88888889,
- 17.58888889,
- 23.12222222,
- 21.77777778,
- 24.42222222,
- 20.05555556,
- 24.32222222,
- 18.83333333,
- 19.56666667,
- 14.96666667,
- 19.68888889,
- 18.57777778,
- 23,
- 23.34444444,
- 20.7,
- 11.82222222,
- 11.48888889,
- 17.52222222,
- 22.55555556,
- 20.47777778,
- 23.01111111,
- 27.86666667,
- 30.28888889,
- 30.3,
- 22.94444444,
- 18.57777778,
- 25.51111111,
- 24.13333333,
- 30.01111111,
- 24.77777778,
- 20.28888889,
- 28.67777778,
- 32.74444444,
- 31.37777778,
- 28.52222222,
- 31.81111111,
- 27.24444444,
- 32.53333333,
- 26.15555556,
- 24.63333333,
- 28.3,
- 31.23333333,
- 32.21111111,
- 28.21111111,
- 23.07777778,
- 21.64444444,
- 24.34444444,
- 19.62222222,
- 25.14444444,
- 24.46666667,
- 23.87777778,
- 21.28888889,
- 20.22222222,
- 29.98888889,
- 32.04444444,
- 36.44444444,
- 36.01111111,
- 24.85555556,
- 23.45555556,
- 29.17777778,
- 32.25555556,
- 28.75555556,
- 30.28888889,
- 28.85555556,
- 30.45555556,
- 31.26666667,
- 28.86666667,
- 33.31111111,
- 30.66666667,
- 28.67777778,
- 27.4,
- 32.2,
- 25.41111111,
- 22.23333333,
- 26.67777778,
- 30.21111111,
- 29.15555556,
- 29.65555556,
- 31.94444444,
- 31.43333333,
- 28.35555556,
- 24.8,
- 25.5,
- 25.42222222,
- 24.17777778,
- 20.88888889,
- 24.35555556,
- 25.54444444,
- 22,
- 27.95555556,
- 29.42222222,
- 28.88888889,
- 26.8,
- 28.2,
- 26.92222222,
- 24.13333333,
- 22.61111111,
- 26.15555556,
- 30.57777778,
- 30.86666667,
- 29.92222222,
- 27.33333333,
- 23.43333333,
- 24.68888889,
- 26.94444444,
- 28.81111111,
- 25.54444444,
- 22.48888889,
- 21.67777778,
- 19.74444444,
- 23.82222222,
- 25.91111111,
- 30.85555556,
- 28.48888889,
- 29.21111111,
- 28.37777778,
- 22.4,
- 25.55555556,
- 27.35555556,
- 30.67777778,
- 27.95555556,
- 25.98888889,
- 23.46666667,
- 25.37777778,
- 20.46666667,
- 22.54444444,
- 20.18888889,
- 22.24444444,
- 26.84444444,
- 25.8,
- 29.62222222,
- 26.36666667,
- 32.24444444,
- 29.84444444,
- 28.33333333,
- 31.22222222,
- 29.9,
- 29.98888889,
- 27.42222222,
- 25.54444444,
- 20.22222222,
- 24,
- 24.52222222,
- 25.02222222,
- 16.12222222,
- 17.58888889,
- 23.25555556,
- 15.75555556,
- 18.66666667,
- 18.4,
- 12.52222222,
- 20.07777778,
- 28.62222222,
- 17.23333333,
- 16.6,
- 13.34444444,
- 10.98888889,
- 9.522222222,
- 5.8,
- 6.811111111,
- 6.555555556,
- 12.18888889,
- 12.64444444,
- 4.2,
- 3.577777778,
- 8.888888889,
- 15.23333333,
- 16.11111111,
- 18.36666667,
- 16.98888889,
- 15.63333333,
- 16.46666667,
- 15.55555556,
- 15.65555556,
- 17.42222222,
- 18.74444444,
- 19.48888889,
- 15.9,
- 19.73333333,
- 13.02222222,
- 8.1,
- 8.933333333,
- 11.3,
- 12.38888889,
- 8.3,
- 12.38888889,
- 6.388888889,
- 4.211111111,
- 4.666666667,
- 0.7,
- 7.133333333,
- 2.344444444,
- 1.088888889,
- 0.111111111,
- 11.62222222,
- 10.84444444,
- 8.777777778,
- 3.5,
- 3.4,
- 7.211111111,
- 5.711111111,
- 9.677777778,
- 12.25555556,
- 10.15555556,
- 6.511111111,
- 4.911111111,
- 1.5,
- 11.44444444,
- 15.54444444,
- 8.122222222,
- 6.233333333,
- 7,
- 4.355555556,
- 0.277777778,
- 3.711111111,
- 2.888888889,
- 1.555555556,
- 3.888888889,
- 4.555555556,
- 5.666666667,
- 7.833333333,
- 9.833333333,
- 10.02222222,
- 6.288888889,
- 5.366666667,
- 11.41111111,
- 9.566666667,
- 9.744444444,
- 13.57777778,
- 9.433333333,
- 3.1,
- 11.08888889,
- 3.844444444,
- 2.488888889,
- 7.544444444,
- 4.488888889,
- -0.455555556,
- -2.111111111,
- -3.566666667,
- -1.955555556,
- 3.955555556,
- 1.222222222,
-]
+if __name__ == "__main__":
+ dates = pandas.date_range("2023-01-01", periods=365, freq="D")
+ temp = [
+ -11.33333333,
+ -6,
+ -0.111111111,
+ 1.444444444,
+ 2.388888889,
+ 4.555555556,
+ 4.333333333,
+ 0.666666667,
+ 9,
+ 9.611111111,
+ -0.555555556,
+ 1.833333333,
+ -0.444444444,
+ 2.166666667,
+ -4,
+ -12.05555556,
+ -2.722222222,
+ 5,
+ 9.888888889,
+ 6.611111111,
+ -2.833333333,
+ -3.277777778,
+ -1.611111111,
+ -1.388888889,
+ 5.777777778,
+ 2.166666667,
+ -1.055555556,
+ 1.777777778,
+ 1.5,
+ 8.444444444,
+ 6.222222222,
+ -2.5,
+ -0.388888889,
+ 6.111111111,
+ -1.5,
+ 2.666666667,
+ -2.5,
+ 0.611111111,
+ 8.222222222,
+ 2.333333333,
+ -9.333333333,
+ -7.666666667,
+ -6.277777778,
+ -0.611111111,
+ 7.722222222,
+ 6.111111111,
+ -4,
+ 3.388888889,
+ 9.333333333,
+ -6.333333333,
+ -15,
+ -12.94444444,
+ -8.722222222,
+ -6.222222222,
+ -2.833333333,
+ -2.5,
+ 1.5,
+ 3.444444444,
+ 2.666666667,
+ 0.888888889,
+ 7.555555556,
+ 12.66666667,
+ 12.83333333,
+ 1.777777778,
+ -0.111111111,
+ -1.055555556,
+ 4.611111111,
+ 11.16666667,
+ 8.5,
+ 0.5,
+ 2.111111111,
+ 4.722222222,
+ 8.277777778,
+ 10.66666667,
+ 5.833333333,
+ 5.555555556,
+ 6.944444444,
+ 1.722222222,
+ 2.444444444,
+ 6.111111111,
+ 12.11111111,
+ 15.55555556,
+ 9.944444444,
+ 10.27777778,
+ 5.888888889,
+ 1.388888889,
+ 3.555555556,
+ 1.222222222,
+ 4.055555556,
+ 7.833333333,
+ 0.666666667,
+ 10.05555556,
+ 6.444444444,
+ 4.555555556,
+ 11,
+ 3.555555556,
+ -0.555555556,
+ 11.83333333,
+ 7.222222222,
+ 10.16666667,
+ 17.5,
+ 14.55555556,
+ 6.777777778,
+ 3.611111111,
+ 5.888888889,
+ 10.05555556,
+ 16.61111111,
+ 5.5,
+ 7.055555556,
+ 10.5,
+ 1.555555556,
+ 6.166666667,
+ 11.05555556,
+ 5.111111111,
+ 6.055555556,
+ 11,
+ 11.05555556,
+ 14.72222222,
+ 19.16666667,
+ 16.5,
+ 12.61111111,
+ 8.277777778,
+ 6.611111111,
+ 10.38888889,
+ 15.38888889,
+ 17.22222222,
+ 18.27777778,
+ 18.72222222,
+ 17.05555556,
+ 19.72222222,
+ 16.83333333,
+ 12.66666667,
+ 11.66666667,
+ 12.88888889,
+ 14.77777778,
+ 18,
+ 19.44444444,
+ 16.5,
+ 9.722222222,
+ 7.888888889,
+ 13.72222222,
+ 17.55555556,
+ 18.27777778,
+ 20.11111111,
+ 21.66666667,
+ 23.38888889,
+ 23.5,
+ 16.94444444,
+ 16.27777778,
+ 18.61111111,
+ 20.83333333,
+ 24.61111111,
+ 18.27777778,
+ 17.88888889,
+ 22.27777778,
+ 25.94444444,
+ 25.27777778,
+ 24.72222222,
+ 25.61111111,
+ 23.94444444,
+ 26.33333333,
+ 22.05555556,
+ 20.83333333,
+ 24.5,
+ 27.83333333,
+ 25.61111111,
+ 23.11111111,
+ 19.27777778,
+ 16.44444444,
+ 19.44444444,
+ 17.22222222,
+ 19.44444444,
+ 22.16666667,
+ 21.77777778,
+ 17.38888889,
+ 17.22222222,
+ 23.88888889,
+ 28.44444444,
+ 29.44444444,
+ 29.61111111,
+ 21.05555556,
+ 18.55555556,
+ 25.27777778,
+ 26.55555556,
+ 24.55555556,
+ 23.38888889,
+ 22.55555556,
+ 27.05555556,
+ 27.66666667,
+ 26.66666667,
+ 27.61111111,
+ 26.66666667,
+ 24.77777778,
+ 23,
+ 26.5,
+ 23.11111111,
+ 19.83333333,
+ 22.27777778,
+ 24.61111111,
+ 27.05555556,
+ 27.05555556,
+ 27.94444444,
+ 27.33333333,
+ 22.05555556,
+ 21.5,
+ 22,
+ 19.72222222,
+ 20.27777778,
+ 17.88888889,
+ 18.55555556,
+ 18.94444444,
+ 20,
+ 22.05555556,
+ 23.22222222,
+ 24.38888889,
+ 24.5,
+ 24.5,
+ 21.22222222,
+ 20.83333333,
+ 20.61111111,
+ 22.05555556,
+ 23.77777778,
+ 24.16666667,
+ 24.22222222,
+ 21.83333333,
+ 21.33333333,
+ 21.88888889,
+ 22.44444444,
+ 23.11111111,
+ 20.44444444,
+ 16.88888889,
+ 15.77777778,
+ 17.44444444,
+ 17.72222222,
+ 23.11111111,
+ 24.55555556,
+ 24.88888889,
+ 25.11111111,
+ 25.27777778,
+ 19.5,
+ 19.55555556,
+ 24.05555556,
+ 24.27777778,
+ 21.05555556,
+ 19.88888889,
+ 20.66666667,
+ 20.27777778,
+ 17.66666667,
+ 16.44444444,
+ 15.88888889,
+ 18.44444444,
+ 22.44444444,
+ 23,
+ 24.72222222,
+ 24.16666667,
+ 25.94444444,
+ 24.44444444,
+ 23.33333333,
+ 25.22222222,
+ 25,
+ 23.88888889,
+ 23.72222222,
+ 18.94444444,
+ 16.22222222,
+ 19.5,
+ 21.22222222,
+ 19.72222222,
+ 13.22222222,
+ 11.88888889,
+ 16.55555556,
+ 10.05555556,
+ 12.16666667,
+ 11.5,
+ 10.22222222,
+ 17.27777778,
+ 21.72222222,
+ 13.83333333,
+ 13,
+ 6.944444444,
+ 6.388888889,
+ 4.222222222,
+ 2.5,
+ 1.111111111,
+ 3.055555556,
+ 6.388888889,
+ 10.44444444,
+ -2,
+ -2.222222222,
+ 4.388888889,
+ 8.333333333,
+ 11.11111111,
+ 12.66666667,
+ 10.88888889,
+ 12.83333333,
+ 14.16666667,
+ 12.55555556,
+ 12.05555556,
+ 11.22222222,
+ 12.44444444,
+ 14.38888889,
+ 12,
+ 15.83333333,
+ 6.722222222,
+ 2.5,
+ 4.833333333,
+ 7.5,
+ 8.888888889,
+ 4,
+ 7.388888889,
+ 3.888888889,
+ 1.611111111,
+ -0.333333333,
+ -2,
+ 4.833333333,
+ -1.055555556,
+ -5.611111111,
+ -2.388888889,
+ 5.722222222,
+ 8.444444444,
+ 5.277777778,
+ 0.5,
+ -2.5,
+ 1.111111111,
+ 2.111111111,
+ 5.777777778,
+ 7.555555556,
+ 7.555555556,
+ 4.111111111,
+ -0.388888889,
+ -1,
+ 4.944444444,
+ 9.444444444,
+ 4.722222222,
+ -0.166666667,
+ 0.5,
+ -2.444444444,
+ -2.722222222,
+ -2.888888889,
+ -1.111111111,
+ -4.944444444,
+ -3.111111111,
+ -1.444444444,
+ -0.833333333,
+ 2.333333333,
+ 6.833333333,
+ 4.722222222,
+ 0.888888889,
+ 0.666666667,
+ 4.611111111,
+ 4.666666667,
+ 4.444444444,
+ 6.777777778,
+ 5.833333333,
+ 0.5,
+ 4.888888889,
+ 1.444444444,
+ -2.111111111,
+ 2.444444444,
+ -0.111111111,
+ -2.555555556,
+ -4.611111111,
+ -8.666666667,
+ -8.055555556,
+ 1.555555556,
+ -4.777777778,
+ ]
+ min = [
+ -14.33333333,
+ -12.9,
+ -3.311111111,
+ -4.955555556,
+ -3.611111111,
+ 0.555555556,
+ 1.133333333,
+ -5.133333333,
+ 2.3,
+ 3.911111111,
+ -7.055555556,
+ -1.366666667,
+ -4.844444444,
+ -3.333333333,
+ -6.1,
+ -17.15555556,
+ -4.822222222,
+ 0.4,
+ 3.488888889,
+ 4.211111111,
+ -6.433333333,
+ -7.577777778,
+ -7.111111111,
+ -7.088888889,
+ 1.577777778,
+ -3.433333333,
+ -4.355555556,
+ -0.722222222,
+ -2.1,
+ 2.044444444,
+ 2.222222222,
+ -4.7,
+ -2.388888889,
+ 4.111111111,
+ -5,
+ -0.133333333,
+ -5.3,
+ -2.288888889,
+ 6.022222222,
+ -1.766666667,
+ -15.53333333,
+ -13.46666667,
+ -9.277777778,
+ -3.211111111,
+ 3.122222222,
+ 1.411111111,
+ -6.8,
+ 1.388888889,
+ 5.333333333,
+ -9.833333333,
+ -22,
+ -19.74444444,
+ -14.62222222,
+ -9.622222222,
+ -8.433333333,
+ -8.5,
+ -2.8,
+ 0.144444444,
+ -3.233333333,
+ -3.411111111,
+ 5.355555556,
+ 8.366666667,
+ 7.333333333,
+ -0.322222222,
+ -6.911111111,
+ -4.955555556,
+ -1.588888889,
+ 4.966666667,
+ 2.5,
+ -4.3,
+ -1.888888889,
+ -1.777777778,
+ 2.477777778,
+ 3.766666667,
+ 0.533333333,
+ 1.755555556,
+ 2.944444444,
+ -4.977777778,
+ -4.055555556,
+ 1.711111111,
+ 6.011111111,
+ 13.15555556,
+ 5.044444444,
+ 6.577777778,
+ 3.388888889,
+ -1.011111111,
+ -0.244444444,
+ -2.477777778,
+ -1.444444444,
+ 2.533333333,
+ -6.333333333,
+ 4.255555556,
+ 1.944444444,
+ 0.855555556,
+ 5.4,
+ -1.244444444,
+ -2.855555556,
+ 4.833333333,
+ 2.722222222,
+ 6.466666667,
+ 14.5,
+ 9.855555556,
+ 2.277777778,
+ -3.188888889,
+ 0.788888889,
+ 4.155555556,
+ 13.41111111,
+ 2.3,
+ 0.855555556,
+ 8.4,
+ -0.444444444,
+ 1.166666667,
+ 7.755555556,
+ -0.288888889,
+ -0.244444444,
+ 8.7,
+ 5.555555556,
+ 8.222222222,
+ 16.26666667,
+ 14.4,
+ 5.711111111,
+ 5.177777778,
+ 4.511111111,
+ 5.988888889,
+ 10.08888889,
+ 10.52222222,
+ 15.37777778,
+ 12.42222222,
+ 14.95555556,
+ 15.22222222,
+ 11.93333333,
+ 6.866666667,
+ 6.866666667,
+ 9.688888889,
+ 11.57777778,
+ 12,
+ 13.34444444,
+ 11.3,
+ 6.222222222,
+ 2.088888889,
+ 8.322222222,
+ 14.05555556,
+ 13.77777778,
+ 16.91111111,
+ 16.86666667,
+ 16.68888889,
+ 18.5,
+ 12.54444444,
+ 12.27777778,
+ 15.91111111,
+ 15.03333333,
+ 22.11111111,
+ 15.77777778,
+ 13.68888889,
+ 17.87777778,
+ 19.94444444,
+ 18.57777778,
+ 18.62222222,
+ 20.11111111,
+ 17.14444444,
+ 20.43333333,
+ 15.75555556,
+ 17.33333333,
+ 20,
+ 23.03333333,
+ 19.61111111,
+ 18.51111111,
+ 15.27777778,
+ 11.44444444,
+ 13.64444444,
+ 11.42222222,
+ 16.14444444,
+ 19.76666667,
+ 18.77777778,
+ 11.88888889,
+ 12.32222222,
+ 20.78888889,
+ 25.04444444,
+ 25.34444444,
+ 23.81111111,
+ 18.35555556,
+ 11.85555556,
+ 18.37777778,
+ 23.15555556,
+ 21.55555556,
+ 17.48888889,
+ 19.05555556,
+ 20.25555556,
+ 23.86666667,
+ 23.86666667,
+ 21.41111111,
+ 21.16666667,
+ 18.67777778,
+ 18.1,
+ 24.4,
+ 19.01111111,
+ 17.13333333,
+ 18.27777778,
+ 21.71111111,
+ 22.85555556,
+ 22.65555556,
+ 25.14444444,
+ 24.13333333,
+ 17.95555556,
+ 14.7,
+ 15.1,
+ 16.02222222,
+ 14.27777778,
+ 11.18888889,
+ 13.65555556,
+ 16.74444444,
+ 16.7,
+ 17.65555556,
+ 16.62222222,
+ 21.68888889,
+ 19.6,
+ 18.6,
+ 15.52222222,
+ 18.53333333,
+ 17.01111111,
+ 17.75555556,
+ 20.47777778,
+ 17.76666667,
+ 22.22222222,
+ 18.23333333,
+ 17.83333333,
+ 15.38888889,
+ 19.64444444,
+ 17.81111111,
+ 15.44444444,
+ 14.88888889,
+ 13.07777778,
+ 15.24444444,
+ 11.82222222,
+ 20.81111111,
+ 21.45555556,
+ 18.98888889,
+ 19.71111111,
+ 19.27777778,
+ 12.7,
+ 15.05555556,
+ 19.15555556,
+ 20.77777778,
+ 15.35555556,
+ 17.68888889,
+ 18.26666667,
+ 15.47777778,
+ 12.76666667,
+ 10.54444444,
+ 13.38888889,
+ 12.54444444,
+ 19.84444444,
+ 19.5,
+ 21.92222222,
+ 17.86666667,
+ 22.44444444,
+ 19.64444444,
+ 20.73333333,
+ 22.02222222,
+ 19,
+ 20.48888889,
+ 19.02222222,
+ 16.44444444,
+ 14.22222222,
+ 16.3,
+ 16.42222222,
+ 17.22222222,
+ 8.322222222,
+ 8.288888889,
+ 13.95555556,
+ 5.555555556,
+ 5.666666667,
+ 7.7,
+ 4.022222222,
+ 11.77777778,
+ 16.42222222,
+ 11.83333333,
+ 9.7,
+ 0.044444444,
+ 3.688888889,
+ -2.077777778,
+ 0.1,
+ -5.388888889,
+ -3.244444444,
+ 0.688888889,
+ 5.744444444,
+ -7.7,
+ -7.022222222,
+ -0.211111111,
+ 4.833333333,
+ 8.111111111,
+ 5.766666667,
+ 7.888888889,
+ 10.43333333,
+ 11.56666667,
+ 10.15555556,
+ 7.155555556,
+ 4.522222222,
+ 7.144444444,
+ 10.88888889,
+ 9.5,
+ 12.13333333,
+ 4.022222222,
+ -3.9,
+ 1.433333333,
+ 0.7,
+ 3.188888889,
+ -1.7,
+ 3.588888889,
+ -0.111111111,
+ -2.788888889,
+ -7.133333333,
+ -5,
+ 0.733333333,
+ -7.555555556,
+ -12.51111111,
+ -8.188888889,
+ 3.122222222,
+ 2.944444444,
+ 0.477777778,
+ -3.2,
+ -9.2,
+ -4.788888889,
+ -0.288888889,
+ 1.077777778,
+ 4.755555556,
+ 5.455555556,
+ 0.511111111,
+ -3.888888889,
+ -7.4,
+ -1.355555556,
+ 5.144444444,
+ 0.122222222,
+ -5.166666667,
+ -5,
+ -5.144444444,
+ -8.822222222,
+ -6.388888889,
+ -6.811111111,
+ -8.944444444,
+ -10.11111111,
+ -7.144444444,
+ -5.133333333,
+ -1.166666667,
+ 1.833333333,
+ -1.477777778,
+ -1.811111111,
+ -2.433333333,
+ -1.188888889,
+ -2.333333333,
+ 0.744444444,
+ 1.877777778,
+ 1.333333333,
+ -1.7,
+ 0.888888889,
+ -3.855555556,
+ -8.211111111,
+ -1.055555556,
+ -4.211111111,
+ -7.355555556,
+ -8.111111111,
+ -10.96666667,
+ -13.05555556,
+ -4.644444444,
+ -7.577777778,
+ ]
+ max = [
+ -7.233333333,
+ -1.6,
+ 5.488888889,
+ 7.744444444,
+ 6.188888889,
+ 6.555555556,
+ 10.53333333,
+ 6.766666667,
+ 14.1,
+ 14.11111111,
+ 2.044444444,
+ 4.633333333,
+ 2.055555556,
+ 8.666666667,
+ -1.4,
+ -5.555555556,
+ 4.177777778,
+ 11.8,
+ 15.58888889,
+ 12.31111111,
+ 3.666666667,
+ -0.977777778,
+ 1.288888889,
+ 4.211111111,
+ 9.377777778,
+ 5.266666667,
+ 2.144444444,
+ 3.977777778,
+ 7.2,
+ 11.94444444,
+ 11.32222222,
+ 4,
+ 6.611111111,
+ 8.211111111,
+ 3.5,
+ 8.866666667,
+ 3.6,
+ 3.711111111,
+ 13.12222222,
+ 7.833333333,
+ -3.333333333,
+ -2.166666667,
+ -2.877777778,
+ 5.188888889,
+ 13.12222222,
+ 12.11111111,
+ -0.7,
+ 6.688888889,
+ 14.03333333,
+ -2.433333333,
+ -8.6,
+ -8.244444444,
+ -2.122222222,
+ -2.722222222,
+ 1.266666667,
+ 2.8,
+ 5.7,
+ 6.944444444,
+ 5.066666667,
+ 5.688888889,
+ 13.35555556,
+ 16.66666667,
+ 17.33333333,
+ 7.277777778,
+ 6.388888889,
+ 1.344444444,
+ 9.111111111,
+ 17.96666667,
+ 12.8,
+ 5.8,
+ 6.911111111,
+ 6.822222222,
+ 11.87777778,
+ 13.16666667,
+ 9.233333333,
+ 8.655555556,
+ 10.04444444,
+ 7.022222222,
+ 7.644444444,
+ 8.311111111,
+ 16.71111111,
+ 18.85555556,
+ 12.14444444,
+ 13.27777778,
+ 11.18888889,
+ 7.088888889,
+ 8.255555556,
+ 7.522222222,
+ 9.955555556,
+ 9.933333333,
+ 4.866666667,
+ 15.25555556,
+ 9.244444444,
+ 9.755555556,
+ 14,
+ 8.955555556,
+ 2.344444444,
+ 17.43333333,
+ 12.12222222,
+ 13.46666667,
+ 23,
+ 18.45555556,
+ 12.77777778,
+ 7.211111111,
+ 8.588888889,
+ 14.35555556,
+ 19.01111111,
+ 12.4,
+ 9.155555556,
+ 15.6,
+ 4.955555556,
+ 8.966666667,
+ 16.95555556,
+ 9.511111111,
+ 10.15555556,
+ 16,
+ 14.45555556,
+ 21.02222222,
+ 25.76666667,
+ 20.5,
+ 15.71111111,
+ 11.67777778,
+ 12.81111111,
+ 12.88888889,
+ 17.58888889,
+ 23.12222222,
+ 21.77777778,
+ 24.42222222,
+ 20.05555556,
+ 24.32222222,
+ 18.83333333,
+ 19.56666667,
+ 14.96666667,
+ 19.68888889,
+ 18.57777778,
+ 23,
+ 23.34444444,
+ 20.7,
+ 11.82222222,
+ 11.48888889,
+ 17.52222222,
+ 22.55555556,
+ 20.47777778,
+ 23.01111111,
+ 27.86666667,
+ 30.28888889,
+ 30.3,
+ 22.94444444,
+ 18.57777778,
+ 25.51111111,
+ 24.13333333,
+ 30.01111111,
+ 24.77777778,
+ 20.28888889,
+ 28.67777778,
+ 32.74444444,
+ 31.37777778,
+ 28.52222222,
+ 31.81111111,
+ 27.24444444,
+ 32.53333333,
+ 26.15555556,
+ 24.63333333,
+ 28.3,
+ 31.23333333,
+ 32.21111111,
+ 28.21111111,
+ 23.07777778,
+ 21.64444444,
+ 24.34444444,
+ 19.62222222,
+ 25.14444444,
+ 24.46666667,
+ 23.87777778,
+ 21.28888889,
+ 20.22222222,
+ 29.98888889,
+ 32.04444444,
+ 36.44444444,
+ 36.01111111,
+ 24.85555556,
+ 23.45555556,
+ 29.17777778,
+ 32.25555556,
+ 28.75555556,
+ 30.28888889,
+ 28.85555556,
+ 30.45555556,
+ 31.26666667,
+ 28.86666667,
+ 33.31111111,
+ 30.66666667,
+ 28.67777778,
+ 27.4,
+ 32.2,
+ 25.41111111,
+ 22.23333333,
+ 26.67777778,
+ 30.21111111,
+ 29.15555556,
+ 29.65555556,
+ 31.94444444,
+ 31.43333333,
+ 28.35555556,
+ 24.8,
+ 25.5,
+ 25.42222222,
+ 24.17777778,
+ 20.88888889,
+ 24.35555556,
+ 25.54444444,
+ 22,
+ 27.95555556,
+ 29.42222222,
+ 28.88888889,
+ 26.8,
+ 28.2,
+ 26.92222222,
+ 24.13333333,
+ 22.61111111,
+ 26.15555556,
+ 30.57777778,
+ 30.86666667,
+ 29.92222222,
+ 27.33333333,
+ 23.43333333,
+ 24.68888889,
+ 26.94444444,
+ 28.81111111,
+ 25.54444444,
+ 22.48888889,
+ 21.67777778,
+ 19.74444444,
+ 23.82222222,
+ 25.91111111,
+ 30.85555556,
+ 28.48888889,
+ 29.21111111,
+ 28.37777778,
+ 22.4,
+ 25.55555556,
+ 27.35555556,
+ 30.67777778,
+ 27.95555556,
+ 25.98888889,
+ 23.46666667,
+ 25.37777778,
+ 20.46666667,
+ 22.54444444,
+ 20.18888889,
+ 22.24444444,
+ 26.84444444,
+ 25.8,
+ 29.62222222,
+ 26.36666667,
+ 32.24444444,
+ 29.84444444,
+ 28.33333333,
+ 31.22222222,
+ 29.9,
+ 29.98888889,
+ 27.42222222,
+ 25.54444444,
+ 20.22222222,
+ 24,
+ 24.52222222,
+ 25.02222222,
+ 16.12222222,
+ 17.58888889,
+ 23.25555556,
+ 15.75555556,
+ 18.66666667,
+ 18.4,
+ 12.52222222,
+ 20.07777778,
+ 28.62222222,
+ 17.23333333,
+ 16.6,
+ 13.34444444,
+ 10.98888889,
+ 9.522222222,
+ 5.8,
+ 6.811111111,
+ 6.555555556,
+ 12.18888889,
+ 12.64444444,
+ 4.2,
+ 3.577777778,
+ 8.888888889,
+ 15.23333333,
+ 16.11111111,
+ 18.36666667,
+ 16.98888889,
+ 15.63333333,
+ 16.46666667,
+ 15.55555556,
+ 15.65555556,
+ 17.42222222,
+ 18.74444444,
+ 19.48888889,
+ 15.9,
+ 19.73333333,
+ 13.02222222,
+ 8.1,
+ 8.933333333,
+ 11.3,
+ 12.38888889,
+ 8.3,
+ 12.38888889,
+ 6.388888889,
+ 4.211111111,
+ 4.666666667,
+ 0.7,
+ 7.133333333,
+ 2.344444444,
+ 1.088888889,
+ 0.111111111,
+ 11.62222222,
+ 10.84444444,
+ 8.777777778,
+ 3.5,
+ 3.4,
+ 7.211111111,
+ 5.711111111,
+ 9.677777778,
+ 12.25555556,
+ 10.15555556,
+ 6.511111111,
+ 4.911111111,
+ 1.5,
+ 11.44444444,
+ 15.54444444,
+ 8.122222222,
+ 6.233333333,
+ 7,
+ 4.355555556,
+ 0.277777778,
+ 3.711111111,
+ 2.888888889,
+ 1.555555556,
+ 3.888888889,
+ 4.555555556,
+ 5.666666667,
+ 7.833333333,
+ 9.833333333,
+ 10.02222222,
+ 6.288888889,
+ 5.366666667,
+ 11.41111111,
+ 9.566666667,
+ 9.744444444,
+ 13.57777778,
+ 9.433333333,
+ 3.1,
+ 11.08888889,
+ 3.844444444,
+ 2.488888889,
+ 7.544444444,
+ 4.488888889,
+ -0.455555556,
+ -2.111111111,
+ -3.566666667,
+ -1.955555556,
+ 3.955555556,
+ 1.222222222,
+ ]
-start = 50
-size = 100
-data = {"Date": dates[start:size], "Temp°C": temp[start:size], "Min": min[start:size], "Max": max[start:size]}
+ start = 50
+ size = 100
+ data = {"Date": dates[start:size], "Temp°C": temp[start:size], "Min": min[start:size], "Max": max[start:size]}
-page = """
+ page = """
# Line - Style
<|{data}|chart|mode=lines|x=Date|y[1]=Temp°C|y[2]=Min|y[3]=Max|line[1]=dash|color[2]=blue|color[3]=red|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/line-texts.py b/doc/gui/examples/charts/line-texts.py
index b9dd36753b..a9329862ea 100644
--- a/doc/gui/examples/charts/line-texts.py
+++ b/doc/gui/examples/charts/line-texts.py
@@ -18,1123 +18,1124 @@
from taipy.gui import Gui
-dates = pandas.date_range("2023-01-01", periods=365, freq="D")
-temp = [
- -11.33333333,
- -6,
- -0.111111111,
- 1.444444444,
- 2.388888889,
- 4.555555556,
- 4.333333333,
- 0.666666667,
- 9,
- 9.611111111,
- -0.555555556,
- 1.833333333,
- -0.444444444,
- 2.166666667,
- -4,
- -12.05555556,
- -2.722222222,
- 5,
- 9.888888889,
- 6.611111111,
- -2.833333333,
- -3.277777778,
- -1.611111111,
- -1.388888889,
- 5.777777778,
- 2.166666667,
- -1.055555556,
- 1.777777778,
- 1.5,
- 8.444444444,
- 6.222222222,
- -2.5,
- -0.388888889,
- 6.111111111,
- -1.5,
- 2.666666667,
- -2.5,
- 0.611111111,
- 8.222222222,
- 2.333333333,
- -9.333333333,
- -7.666666667,
- -6.277777778,
- -0.611111111,
- 7.722222222,
- 6.111111111,
- -4,
- 3.388888889,
- 9.333333333,
- -6.333333333,
- -15,
- -12.94444444,
- -8.722222222,
- -6.222222222,
- -2.833333333,
- -2.5,
- 1.5,
- 3.444444444,
- 2.666666667,
- 0.888888889,
- 7.555555556,
- 12.66666667,
- 12.83333333,
- 1.777777778,
- -0.111111111,
- -1.055555556,
- 4.611111111,
- 11.16666667,
- 8.5,
- 0.5,
- 2.111111111,
- 4.722222222,
- 8.277777778,
- 10.66666667,
- 5.833333333,
- 5.555555556,
- 6.944444444,
- 1.722222222,
- 2.444444444,
- 6.111111111,
- 12.11111111,
- 15.55555556,
- 9.944444444,
- 10.27777778,
- 5.888888889,
- 1.388888889,
- 3.555555556,
- 1.222222222,
- 4.055555556,
- 7.833333333,
- 0.666666667,
- 10.05555556,
- 6.444444444,
- 4.555555556,
- 11,
- 3.555555556,
- -0.555555556,
- 11.83333333,
- 7.222222222,
- 10.16666667,
- 17.5,
- 14.55555556,
- 6.777777778,
- 3.611111111,
- 5.888888889,
- 10.05555556,
- 16.61111111,
- 5.5,
- 7.055555556,
- 10.5,
- 1.555555556,
- 6.166666667,
- 11.05555556,
- 5.111111111,
- 6.055555556,
- 11,
- 11.05555556,
- 14.72222222,
- 19.16666667,
- 16.5,
- 12.61111111,
- 8.277777778,
- 6.611111111,
- 10.38888889,
- 15.38888889,
- 17.22222222,
- 18.27777778,
- 18.72222222,
- 17.05555556,
- 19.72222222,
- 16.83333333,
- 12.66666667,
- 11.66666667,
- 12.88888889,
- 14.77777778,
- 18,
- 19.44444444,
- 16.5,
- 9.722222222,
- 7.888888889,
- 13.72222222,
- 17.55555556,
- 18.27777778,
- 20.11111111,
- 21.66666667,
- 23.38888889,
- 23.5,
- 16.94444444,
- 16.27777778,
- 18.61111111,
- 20.83333333,
- 24.61111111,
- 18.27777778,
- 17.88888889,
- 22.27777778,
- 25.94444444,
- 25.27777778,
- 24.72222222,
- 25.61111111,
- 23.94444444,
- 26.33333333,
- 22.05555556,
- 20.83333333,
- 24.5,
- 27.83333333,
- 25.61111111,
- 23.11111111,
- 19.27777778,
- 16.44444444,
- 19.44444444,
- 17.22222222,
- 19.44444444,
- 22.16666667,
- 21.77777778,
- 17.38888889,
- 17.22222222,
- 23.88888889,
- 28.44444444,
- 29.44444444,
- 29.61111111,
- 21.05555556,
- 18.55555556,
- 25.27777778,
- 26.55555556,
- 24.55555556,
- 23.38888889,
- 22.55555556,
- 27.05555556,
- 27.66666667,
- 26.66666667,
- 27.61111111,
- 26.66666667,
- 24.77777778,
- 23,
- 26.5,
- 23.11111111,
- 19.83333333,
- 22.27777778,
- 24.61111111,
- 27.05555556,
- 27.05555556,
- 27.94444444,
- 27.33333333,
- 22.05555556,
- 21.5,
- 22,
- 19.72222222,
- 20.27777778,
- 17.88888889,
- 18.55555556,
- 18.94444444,
- 20,
- 22.05555556,
- 23.22222222,
- 24.38888889,
- 24.5,
- 24.5,
- 21.22222222,
- 20.83333333,
- 20.61111111,
- 22.05555556,
- 23.77777778,
- 24.16666667,
- 24.22222222,
- 21.83333333,
- 21.33333333,
- 21.88888889,
- 22.44444444,
- 23.11111111,
- 20.44444444,
- 16.88888889,
- 15.77777778,
- 17.44444444,
- 17.72222222,
- 23.11111111,
- 24.55555556,
- 24.88888889,
- 25.11111111,
- 25.27777778,
- 19.5,
- 19.55555556,
- 24.05555556,
- 24.27777778,
- 21.05555556,
- 19.88888889,
- 20.66666667,
- 20.27777778,
- 17.66666667,
- 16.44444444,
- 15.88888889,
- 18.44444444,
- 22.44444444,
- 23,
- 24.72222222,
- 24.16666667,
- 25.94444444,
- 24.44444444,
- 23.33333333,
- 25.22222222,
- 25,
- 23.88888889,
- 23.72222222,
- 18.94444444,
- 16.22222222,
- 19.5,
- 21.22222222,
- 19.72222222,
- 13.22222222,
- 11.88888889,
- 16.55555556,
- 10.05555556,
- 12.16666667,
- 11.5,
- 10.22222222,
- 17.27777778,
- 21.72222222,
- 13.83333333,
- 13,
- 6.944444444,
- 6.388888889,
- 4.222222222,
- 2.5,
- 1.111111111,
- 3.055555556,
- 6.388888889,
- 10.44444444,
- -2,
- -2.222222222,
- 4.388888889,
- 8.333333333,
- 11.11111111,
- 12.66666667,
- 10.88888889,
- 12.83333333,
- 14.16666667,
- 12.55555556,
- 12.05555556,
- 11.22222222,
- 12.44444444,
- 14.38888889,
- 12,
- 15.83333333,
- 6.722222222,
- 2.5,
- 4.833333333,
- 7.5,
- 8.888888889,
- 4,
- 7.388888889,
- 3.888888889,
- 1.611111111,
- -0.333333333,
- -2,
- 4.833333333,
- -1.055555556,
- -5.611111111,
- -2.388888889,
- 5.722222222,
- 8.444444444,
- 5.277777778,
- 0.5,
- -2.5,
- 1.111111111,
- 2.111111111,
- 5.777777778,
- 7.555555556,
- 7.555555556,
- 4.111111111,
- -0.388888889,
- -1,
- 4.944444444,
- 9.444444444,
- 4.722222222,
- -0.166666667,
- 0.5,
- -2.444444444,
- -2.722222222,
- -2.888888889,
- -1.111111111,
- -4.944444444,
- -3.111111111,
- -1.444444444,
- -0.833333333,
- 2.333333333,
- 6.833333333,
- 4.722222222,
- 0.888888889,
- 0.666666667,
- 4.611111111,
- 4.666666667,
- 4.444444444,
- 6.777777778,
- 5.833333333,
- 0.5,
- 4.888888889,
- 1.444444444,
- -2.111111111,
- 2.444444444,
- -0.111111111,
- -2.555555556,
- -4.611111111,
- -8.666666667,
- -8.055555556,
- 1.555555556,
- -4.777777778,
-]
-min = [
- -14.33333333,
- -12.9,
- -3.311111111,
- -4.955555556,
- -3.611111111,
- 0.555555556,
- 1.133333333,
- -5.133333333,
- 2.3,
- 3.911111111,
- -7.055555556,
- -1.366666667,
- -4.844444444,
- -3.333333333,
- -6.1,
- -17.15555556,
- -4.822222222,
- 0.4,
- 3.488888889,
- 4.211111111,
- -6.433333333,
- -7.577777778,
- -7.111111111,
- -7.088888889,
- 1.577777778,
- -3.433333333,
- -4.355555556,
- -0.722222222,
- -2.1,
- 2.044444444,
- 2.222222222,
- -4.7,
- -2.388888889,
- 4.111111111,
- -5,
- -0.133333333,
- -5.3,
- -2.288888889,
- 6.022222222,
- -1.766666667,
- -15.53333333,
- -13.46666667,
- -9.277777778,
- -3.211111111,
- 3.122222222,
- 1.411111111,
- -6.8,
- 1.388888889,
- 5.333333333,
- -9.833333333,
- -22,
- -19.74444444,
- -14.62222222,
- -9.622222222,
- -8.433333333,
- -8.5,
- -2.8,
- 0.144444444,
- -3.233333333,
- -3.411111111,
- 5.355555556,
- 8.366666667,
- 7.333333333,
- -0.322222222,
- -6.911111111,
- -4.955555556,
- -1.588888889,
- 4.966666667,
- 2.5,
- -4.3,
- -1.888888889,
- -1.777777778,
- 2.477777778,
- 3.766666667,
- 0.533333333,
- 1.755555556,
- 2.944444444,
- -4.977777778,
- -4.055555556,
- 1.711111111,
- 6.011111111,
- 13.15555556,
- 5.044444444,
- 6.577777778,
- 3.388888889,
- -1.011111111,
- -0.244444444,
- -2.477777778,
- -1.444444444,
- 2.533333333,
- -6.333333333,
- 4.255555556,
- 1.944444444,
- 0.855555556,
- 5.4,
- -1.244444444,
- -2.855555556,
- 4.833333333,
- 2.722222222,
- 6.466666667,
- 14.5,
- 9.855555556,
- 2.277777778,
- -3.188888889,
- 0.788888889,
- 4.155555556,
- 13.41111111,
- 2.3,
- 0.855555556,
- 8.4,
- -0.444444444,
- 1.166666667,
- 7.755555556,
- -0.288888889,
- -0.244444444,
- 8.7,
- 5.555555556,
- 8.222222222,
- 16.26666667,
- 14.4,
- 5.711111111,
- 5.177777778,
- 4.511111111,
- 5.988888889,
- 10.08888889,
- 10.52222222,
- 15.37777778,
- 12.42222222,
- 14.95555556,
- 15.22222222,
- 11.93333333,
- 6.866666667,
- 6.866666667,
- 9.688888889,
- 11.57777778,
- 12,
- 13.34444444,
- 11.3,
- 6.222222222,
- 2.088888889,
- 8.322222222,
- 14.05555556,
- 13.77777778,
- 16.91111111,
- 16.86666667,
- 16.68888889,
- 18.5,
- 12.54444444,
- 12.27777778,
- 15.91111111,
- 15.03333333,
- 22.11111111,
- 15.77777778,
- 13.68888889,
- 17.87777778,
- 19.94444444,
- 18.57777778,
- 18.62222222,
- 20.11111111,
- 17.14444444,
- 20.43333333,
- 15.75555556,
- 17.33333333,
- 20,
- 23.03333333,
- 19.61111111,
- 18.51111111,
- 15.27777778,
- 11.44444444,
- 13.64444444,
- 11.42222222,
- 16.14444444,
- 19.76666667,
- 18.77777778,
- 11.88888889,
- 12.32222222,
- 20.78888889,
- 25.04444444,
- 25.34444444,
- 23.81111111,
- 18.35555556,
- 11.85555556,
- 18.37777778,
- 23.15555556,
- 21.55555556,
- 17.48888889,
- 19.05555556,
- 20.25555556,
- 23.86666667,
- 23.86666667,
- 21.41111111,
- 21.16666667,
- 18.67777778,
- 18.1,
- 24.4,
- 19.01111111,
- 17.13333333,
- 18.27777778,
- 21.71111111,
- 22.85555556,
- 22.65555556,
- 25.14444444,
- 24.13333333,
- 17.95555556,
- 14.7,
- 15.1,
- 16.02222222,
- 14.27777778,
- 11.18888889,
- 13.65555556,
- 16.74444444,
- 16.7,
- 17.65555556,
- 16.62222222,
- 21.68888889,
- 19.6,
- 18.6,
- 15.52222222,
- 18.53333333,
- 17.01111111,
- 17.75555556,
- 20.47777778,
- 17.76666667,
- 22.22222222,
- 18.23333333,
- 17.83333333,
- 15.38888889,
- 19.64444444,
- 17.81111111,
- 15.44444444,
- 14.88888889,
- 13.07777778,
- 15.24444444,
- 11.82222222,
- 20.81111111,
- 21.45555556,
- 18.98888889,
- 19.71111111,
- 19.27777778,
- 12.7,
- 15.05555556,
- 19.15555556,
- 20.77777778,
- 15.35555556,
- 17.68888889,
- 18.26666667,
- 15.47777778,
- 12.76666667,
- 10.54444444,
- 13.38888889,
- 12.54444444,
- 19.84444444,
- 19.5,
- 21.92222222,
- 17.86666667,
- 22.44444444,
- 19.64444444,
- 20.73333333,
- 22.02222222,
- 19,
- 20.48888889,
- 19.02222222,
- 16.44444444,
- 14.22222222,
- 16.3,
- 16.42222222,
- 17.22222222,
- 8.322222222,
- 8.288888889,
- 13.95555556,
- 5.555555556,
- 5.666666667,
- 7.7,
- 4.022222222,
- 11.77777778,
- 16.42222222,
- 11.83333333,
- 9.7,
- 0.044444444,
- 3.688888889,
- -2.077777778,
- 0.1,
- -5.388888889,
- -3.244444444,
- 0.688888889,
- 5.744444444,
- -7.7,
- -7.022222222,
- -0.211111111,
- 4.833333333,
- 8.111111111,
- 5.766666667,
- 7.888888889,
- 10.43333333,
- 11.56666667,
- 10.15555556,
- 7.155555556,
- 4.522222222,
- 7.144444444,
- 10.88888889,
- 9.5,
- 12.13333333,
- 4.022222222,
- -3.9,
- 1.433333333,
- 0.7,
- 3.188888889,
- -1.7,
- 3.588888889,
- -0.111111111,
- -2.788888889,
- -7.133333333,
- -5,
- 0.733333333,
- -7.555555556,
- -12.51111111,
- -8.188888889,
- 3.122222222,
- 2.944444444,
- 0.477777778,
- -3.2,
- -9.2,
- -4.788888889,
- -0.288888889,
- 1.077777778,
- 4.755555556,
- 5.455555556,
- 0.511111111,
- -3.888888889,
- -7.4,
- -1.355555556,
- 5.144444444,
- 0.122222222,
- -5.166666667,
- -5,
- -5.144444444,
- -8.822222222,
- -6.388888889,
- -6.811111111,
- -8.944444444,
- -10.11111111,
- -7.144444444,
- -5.133333333,
- -1.166666667,
- 1.833333333,
- -1.477777778,
- -1.811111111,
- -2.433333333,
- -1.188888889,
- -2.333333333,
- 0.744444444,
- 1.877777778,
- 1.333333333,
- -1.7,
- 0.888888889,
- -3.855555556,
- -8.211111111,
- -1.055555556,
- -4.211111111,
- -7.355555556,
- -8.111111111,
- -10.96666667,
- -13.05555556,
- -4.644444444,
- -7.577777778,
-]
-max = [
- -7.233333333,
- -1.6,
- 5.488888889,
- 7.744444444,
- 6.188888889,
- 6.555555556,
- 10.53333333,
- 6.766666667,
- 14.1,
- 14.11111111,
- 2.044444444,
- 4.633333333,
- 2.055555556,
- 8.666666667,
- -1.4,
- -5.555555556,
- 4.177777778,
- 11.8,
- 15.58888889,
- 12.31111111,
- 3.666666667,
- -0.977777778,
- 1.288888889,
- 4.211111111,
- 9.377777778,
- 5.266666667,
- 2.144444444,
- 3.977777778,
- 7.2,
- 11.94444444,
- 11.32222222,
- 4,
- 6.611111111,
- 8.211111111,
- 3.5,
- 8.866666667,
- 3.6,
- 3.711111111,
- 13.12222222,
- 7.833333333,
- -3.333333333,
- -2.166666667,
- -2.877777778,
- 5.188888889,
- 13.12222222,
- 12.11111111,
- -0.7,
- 6.688888889,
- 14.03333333,
- -2.433333333,
- -8.6,
- -8.244444444,
- -2.122222222,
- -2.722222222,
- 1.266666667,
- 2.8,
- 5.7,
- 6.944444444,
- 5.066666667,
- 5.688888889,
- 13.35555556,
- 16.66666667,
- 17.33333333,
- 7.277777778,
- 6.388888889,
- 1.344444444,
- 9.111111111,
- 17.96666667,
- 12.8,
- 5.8,
- 6.911111111,
- 6.822222222,
- 11.87777778,
- 13.16666667,
- 9.233333333,
- 8.655555556,
- 10.04444444,
- 7.022222222,
- 7.644444444,
- 8.311111111,
- 16.71111111,
- 18.85555556,
- 12.14444444,
- 13.27777778,
- 11.18888889,
- 7.088888889,
- 8.255555556,
- 7.522222222,
- 9.955555556,
- 9.933333333,
- 4.866666667,
- 15.25555556,
- 9.244444444,
- 9.755555556,
- 14,
- 8.955555556,
- 2.344444444,
- 17.43333333,
- 12.12222222,
- 13.46666667,
- 23,
- 18.45555556,
- 12.77777778,
- 7.211111111,
- 8.588888889,
- 14.35555556,
- 19.01111111,
- 12.4,
- 9.155555556,
- 15.6,
- 4.955555556,
- 8.966666667,
- 16.95555556,
- 9.511111111,
- 10.15555556,
- 16,
- 14.45555556,
- 21.02222222,
- 25.76666667,
- 20.5,
- 15.71111111,
- 11.67777778,
- 12.81111111,
- 12.88888889,
- 17.58888889,
- 23.12222222,
- 21.77777778,
- 24.42222222,
- 20.05555556,
- 24.32222222,
- 18.83333333,
- 19.56666667,
- 14.96666667,
- 19.68888889,
- 18.57777778,
- 23,
- 23.34444444,
- 20.7,
- 11.82222222,
- 11.48888889,
- 17.52222222,
- 22.55555556,
- 20.47777778,
- 23.01111111,
- 27.86666667,
- 30.28888889,
- 30.3,
- 22.94444444,
- 18.57777778,
- 25.51111111,
- 24.13333333,
- 30.01111111,
- 24.77777778,
- 20.28888889,
- 28.67777778,
- 32.74444444,
- 31.37777778,
- 28.52222222,
- 31.81111111,
- 27.24444444,
- 32.53333333,
- 26.15555556,
- 24.63333333,
- 28.3,
- 31.23333333,
- 32.21111111,
- 28.21111111,
- 23.07777778,
- 21.64444444,
- 24.34444444,
- 19.62222222,
- 25.14444444,
- 24.46666667,
- 23.87777778,
- 21.28888889,
- 20.22222222,
- 29.98888889,
- 32.04444444,
- 36.44444444,
- 36.01111111,
- 24.85555556,
- 23.45555556,
- 29.17777778,
- 32.25555556,
- 28.75555556,
- 30.28888889,
- 28.85555556,
- 30.45555556,
- 31.26666667,
- 28.86666667,
- 33.31111111,
- 30.66666667,
- 28.67777778,
- 27.4,
- 32.2,
- 25.41111111,
- 22.23333333,
- 26.67777778,
- 30.21111111,
- 29.15555556,
- 29.65555556,
- 31.94444444,
- 31.43333333,
- 28.35555556,
- 24.8,
- 25.5,
- 25.42222222,
- 24.17777778,
- 20.88888889,
- 24.35555556,
- 25.54444444,
- 22,
- 27.95555556,
- 29.42222222,
- 28.88888889,
- 26.8,
- 28.2,
- 26.92222222,
- 24.13333333,
- 22.61111111,
- 26.15555556,
- 30.57777778,
- 30.86666667,
- 29.92222222,
- 27.33333333,
- 23.43333333,
- 24.68888889,
- 26.94444444,
- 28.81111111,
- 25.54444444,
- 22.48888889,
- 21.67777778,
- 19.74444444,
- 23.82222222,
- 25.91111111,
- 30.85555556,
- 28.48888889,
- 29.21111111,
- 28.37777778,
- 22.4,
- 25.55555556,
- 27.35555556,
- 30.67777778,
- 27.95555556,
- 25.98888889,
- 23.46666667,
- 25.37777778,
- 20.46666667,
- 22.54444444,
- 20.18888889,
- 22.24444444,
- 26.84444444,
- 25.8,
- 29.62222222,
- 26.36666667,
- 32.24444444,
- 29.84444444,
- 28.33333333,
- 31.22222222,
- 29.9,
- 29.98888889,
- 27.42222222,
- 25.54444444,
- 20.22222222,
- 24,
- 24.52222222,
- 25.02222222,
- 16.12222222,
- 17.58888889,
- 23.25555556,
- 15.75555556,
- 18.66666667,
- 18.4,
- 12.52222222,
- 20.07777778,
- 28.62222222,
- 17.23333333,
- 16.6,
- 13.34444444,
- 10.98888889,
- 9.522222222,
- 5.8,
- 6.811111111,
- 6.555555556,
- 12.18888889,
- 12.64444444,
- 4.2,
- 3.577777778,
- 8.888888889,
- 15.23333333,
- 16.11111111,
- 18.36666667,
- 16.98888889,
- 15.63333333,
- 16.46666667,
- 15.55555556,
- 15.65555556,
- 17.42222222,
- 18.74444444,
- 19.48888889,
- 15.9,
- 19.73333333,
- 13.02222222,
- 8.1,
- 8.933333333,
- 11.3,
- 12.38888889,
- 8.3,
- 12.38888889,
- 6.388888889,
- 4.211111111,
- 4.666666667,
- 0.7,
- 7.133333333,
- 2.344444444,
- 1.088888889,
- 0.111111111,
- 11.62222222,
- 10.84444444,
- 8.777777778,
- 3.5,
- 3.4,
- 7.211111111,
- 5.711111111,
- 9.677777778,
- 12.25555556,
- 10.15555556,
- 6.511111111,
- 4.911111111,
- 1.5,
- 11.44444444,
- 15.54444444,
- 8.122222222,
- 6.233333333,
- 7,
- 4.355555556,
- 0.277777778,
- 3.711111111,
- 2.888888889,
- 1.555555556,
- 3.888888889,
- 4.555555556,
- 5.666666667,
- 7.833333333,
- 9.833333333,
- 10.02222222,
- 6.288888889,
- 5.366666667,
- 11.41111111,
- 9.566666667,
- 9.744444444,
- 13.57777778,
- 9.433333333,
- 3.1,
- 11.08888889,
- 3.844444444,
- 2.488888889,
- 7.544444444,
- 4.488888889,
- -0.455555556,
- -2.111111111,
- -3.566666667,
- -1.955555556,
- 3.955555556,
- 1.222222222,
-]
-week_number = [f"W{i//7}" if i % 7 == 0 else None for i in range(0, 365)]
+if __name__ == "__main__":
+ dates = pandas.date_range("2023-01-01", periods=365, freq="D")
+ temp = [
+ -11.33333333,
+ -6,
+ -0.111111111,
+ 1.444444444,
+ 2.388888889,
+ 4.555555556,
+ 4.333333333,
+ 0.666666667,
+ 9,
+ 9.611111111,
+ -0.555555556,
+ 1.833333333,
+ -0.444444444,
+ 2.166666667,
+ -4,
+ -12.05555556,
+ -2.722222222,
+ 5,
+ 9.888888889,
+ 6.611111111,
+ -2.833333333,
+ -3.277777778,
+ -1.611111111,
+ -1.388888889,
+ 5.777777778,
+ 2.166666667,
+ -1.055555556,
+ 1.777777778,
+ 1.5,
+ 8.444444444,
+ 6.222222222,
+ -2.5,
+ -0.388888889,
+ 6.111111111,
+ -1.5,
+ 2.666666667,
+ -2.5,
+ 0.611111111,
+ 8.222222222,
+ 2.333333333,
+ -9.333333333,
+ -7.666666667,
+ -6.277777778,
+ -0.611111111,
+ 7.722222222,
+ 6.111111111,
+ -4,
+ 3.388888889,
+ 9.333333333,
+ -6.333333333,
+ -15,
+ -12.94444444,
+ -8.722222222,
+ -6.222222222,
+ -2.833333333,
+ -2.5,
+ 1.5,
+ 3.444444444,
+ 2.666666667,
+ 0.888888889,
+ 7.555555556,
+ 12.66666667,
+ 12.83333333,
+ 1.777777778,
+ -0.111111111,
+ -1.055555556,
+ 4.611111111,
+ 11.16666667,
+ 8.5,
+ 0.5,
+ 2.111111111,
+ 4.722222222,
+ 8.277777778,
+ 10.66666667,
+ 5.833333333,
+ 5.555555556,
+ 6.944444444,
+ 1.722222222,
+ 2.444444444,
+ 6.111111111,
+ 12.11111111,
+ 15.55555556,
+ 9.944444444,
+ 10.27777778,
+ 5.888888889,
+ 1.388888889,
+ 3.555555556,
+ 1.222222222,
+ 4.055555556,
+ 7.833333333,
+ 0.666666667,
+ 10.05555556,
+ 6.444444444,
+ 4.555555556,
+ 11,
+ 3.555555556,
+ -0.555555556,
+ 11.83333333,
+ 7.222222222,
+ 10.16666667,
+ 17.5,
+ 14.55555556,
+ 6.777777778,
+ 3.611111111,
+ 5.888888889,
+ 10.05555556,
+ 16.61111111,
+ 5.5,
+ 7.055555556,
+ 10.5,
+ 1.555555556,
+ 6.166666667,
+ 11.05555556,
+ 5.111111111,
+ 6.055555556,
+ 11,
+ 11.05555556,
+ 14.72222222,
+ 19.16666667,
+ 16.5,
+ 12.61111111,
+ 8.277777778,
+ 6.611111111,
+ 10.38888889,
+ 15.38888889,
+ 17.22222222,
+ 18.27777778,
+ 18.72222222,
+ 17.05555556,
+ 19.72222222,
+ 16.83333333,
+ 12.66666667,
+ 11.66666667,
+ 12.88888889,
+ 14.77777778,
+ 18,
+ 19.44444444,
+ 16.5,
+ 9.722222222,
+ 7.888888889,
+ 13.72222222,
+ 17.55555556,
+ 18.27777778,
+ 20.11111111,
+ 21.66666667,
+ 23.38888889,
+ 23.5,
+ 16.94444444,
+ 16.27777778,
+ 18.61111111,
+ 20.83333333,
+ 24.61111111,
+ 18.27777778,
+ 17.88888889,
+ 22.27777778,
+ 25.94444444,
+ 25.27777778,
+ 24.72222222,
+ 25.61111111,
+ 23.94444444,
+ 26.33333333,
+ 22.05555556,
+ 20.83333333,
+ 24.5,
+ 27.83333333,
+ 25.61111111,
+ 23.11111111,
+ 19.27777778,
+ 16.44444444,
+ 19.44444444,
+ 17.22222222,
+ 19.44444444,
+ 22.16666667,
+ 21.77777778,
+ 17.38888889,
+ 17.22222222,
+ 23.88888889,
+ 28.44444444,
+ 29.44444444,
+ 29.61111111,
+ 21.05555556,
+ 18.55555556,
+ 25.27777778,
+ 26.55555556,
+ 24.55555556,
+ 23.38888889,
+ 22.55555556,
+ 27.05555556,
+ 27.66666667,
+ 26.66666667,
+ 27.61111111,
+ 26.66666667,
+ 24.77777778,
+ 23,
+ 26.5,
+ 23.11111111,
+ 19.83333333,
+ 22.27777778,
+ 24.61111111,
+ 27.05555556,
+ 27.05555556,
+ 27.94444444,
+ 27.33333333,
+ 22.05555556,
+ 21.5,
+ 22,
+ 19.72222222,
+ 20.27777778,
+ 17.88888889,
+ 18.55555556,
+ 18.94444444,
+ 20,
+ 22.05555556,
+ 23.22222222,
+ 24.38888889,
+ 24.5,
+ 24.5,
+ 21.22222222,
+ 20.83333333,
+ 20.61111111,
+ 22.05555556,
+ 23.77777778,
+ 24.16666667,
+ 24.22222222,
+ 21.83333333,
+ 21.33333333,
+ 21.88888889,
+ 22.44444444,
+ 23.11111111,
+ 20.44444444,
+ 16.88888889,
+ 15.77777778,
+ 17.44444444,
+ 17.72222222,
+ 23.11111111,
+ 24.55555556,
+ 24.88888889,
+ 25.11111111,
+ 25.27777778,
+ 19.5,
+ 19.55555556,
+ 24.05555556,
+ 24.27777778,
+ 21.05555556,
+ 19.88888889,
+ 20.66666667,
+ 20.27777778,
+ 17.66666667,
+ 16.44444444,
+ 15.88888889,
+ 18.44444444,
+ 22.44444444,
+ 23,
+ 24.72222222,
+ 24.16666667,
+ 25.94444444,
+ 24.44444444,
+ 23.33333333,
+ 25.22222222,
+ 25,
+ 23.88888889,
+ 23.72222222,
+ 18.94444444,
+ 16.22222222,
+ 19.5,
+ 21.22222222,
+ 19.72222222,
+ 13.22222222,
+ 11.88888889,
+ 16.55555556,
+ 10.05555556,
+ 12.16666667,
+ 11.5,
+ 10.22222222,
+ 17.27777778,
+ 21.72222222,
+ 13.83333333,
+ 13,
+ 6.944444444,
+ 6.388888889,
+ 4.222222222,
+ 2.5,
+ 1.111111111,
+ 3.055555556,
+ 6.388888889,
+ 10.44444444,
+ -2,
+ -2.222222222,
+ 4.388888889,
+ 8.333333333,
+ 11.11111111,
+ 12.66666667,
+ 10.88888889,
+ 12.83333333,
+ 14.16666667,
+ 12.55555556,
+ 12.05555556,
+ 11.22222222,
+ 12.44444444,
+ 14.38888889,
+ 12,
+ 15.83333333,
+ 6.722222222,
+ 2.5,
+ 4.833333333,
+ 7.5,
+ 8.888888889,
+ 4,
+ 7.388888889,
+ 3.888888889,
+ 1.611111111,
+ -0.333333333,
+ -2,
+ 4.833333333,
+ -1.055555556,
+ -5.611111111,
+ -2.388888889,
+ 5.722222222,
+ 8.444444444,
+ 5.277777778,
+ 0.5,
+ -2.5,
+ 1.111111111,
+ 2.111111111,
+ 5.777777778,
+ 7.555555556,
+ 7.555555556,
+ 4.111111111,
+ -0.388888889,
+ -1,
+ 4.944444444,
+ 9.444444444,
+ 4.722222222,
+ -0.166666667,
+ 0.5,
+ -2.444444444,
+ -2.722222222,
+ -2.888888889,
+ -1.111111111,
+ -4.944444444,
+ -3.111111111,
+ -1.444444444,
+ -0.833333333,
+ 2.333333333,
+ 6.833333333,
+ 4.722222222,
+ 0.888888889,
+ 0.666666667,
+ 4.611111111,
+ 4.666666667,
+ 4.444444444,
+ 6.777777778,
+ 5.833333333,
+ 0.5,
+ 4.888888889,
+ 1.444444444,
+ -2.111111111,
+ 2.444444444,
+ -0.111111111,
+ -2.555555556,
+ -4.611111111,
+ -8.666666667,
+ -8.055555556,
+ 1.555555556,
+ -4.777777778,
+ ]
+ min = [
+ -14.33333333,
+ -12.9,
+ -3.311111111,
+ -4.955555556,
+ -3.611111111,
+ 0.555555556,
+ 1.133333333,
+ -5.133333333,
+ 2.3,
+ 3.911111111,
+ -7.055555556,
+ -1.366666667,
+ -4.844444444,
+ -3.333333333,
+ -6.1,
+ -17.15555556,
+ -4.822222222,
+ 0.4,
+ 3.488888889,
+ 4.211111111,
+ -6.433333333,
+ -7.577777778,
+ -7.111111111,
+ -7.088888889,
+ 1.577777778,
+ -3.433333333,
+ -4.355555556,
+ -0.722222222,
+ -2.1,
+ 2.044444444,
+ 2.222222222,
+ -4.7,
+ -2.388888889,
+ 4.111111111,
+ -5,
+ -0.133333333,
+ -5.3,
+ -2.288888889,
+ 6.022222222,
+ -1.766666667,
+ -15.53333333,
+ -13.46666667,
+ -9.277777778,
+ -3.211111111,
+ 3.122222222,
+ 1.411111111,
+ -6.8,
+ 1.388888889,
+ 5.333333333,
+ -9.833333333,
+ -22,
+ -19.74444444,
+ -14.62222222,
+ -9.622222222,
+ -8.433333333,
+ -8.5,
+ -2.8,
+ 0.144444444,
+ -3.233333333,
+ -3.411111111,
+ 5.355555556,
+ 8.366666667,
+ 7.333333333,
+ -0.322222222,
+ -6.911111111,
+ -4.955555556,
+ -1.588888889,
+ 4.966666667,
+ 2.5,
+ -4.3,
+ -1.888888889,
+ -1.777777778,
+ 2.477777778,
+ 3.766666667,
+ 0.533333333,
+ 1.755555556,
+ 2.944444444,
+ -4.977777778,
+ -4.055555556,
+ 1.711111111,
+ 6.011111111,
+ 13.15555556,
+ 5.044444444,
+ 6.577777778,
+ 3.388888889,
+ -1.011111111,
+ -0.244444444,
+ -2.477777778,
+ -1.444444444,
+ 2.533333333,
+ -6.333333333,
+ 4.255555556,
+ 1.944444444,
+ 0.855555556,
+ 5.4,
+ -1.244444444,
+ -2.855555556,
+ 4.833333333,
+ 2.722222222,
+ 6.466666667,
+ 14.5,
+ 9.855555556,
+ 2.277777778,
+ -3.188888889,
+ 0.788888889,
+ 4.155555556,
+ 13.41111111,
+ 2.3,
+ 0.855555556,
+ 8.4,
+ -0.444444444,
+ 1.166666667,
+ 7.755555556,
+ -0.288888889,
+ -0.244444444,
+ 8.7,
+ 5.555555556,
+ 8.222222222,
+ 16.26666667,
+ 14.4,
+ 5.711111111,
+ 5.177777778,
+ 4.511111111,
+ 5.988888889,
+ 10.08888889,
+ 10.52222222,
+ 15.37777778,
+ 12.42222222,
+ 14.95555556,
+ 15.22222222,
+ 11.93333333,
+ 6.866666667,
+ 6.866666667,
+ 9.688888889,
+ 11.57777778,
+ 12,
+ 13.34444444,
+ 11.3,
+ 6.222222222,
+ 2.088888889,
+ 8.322222222,
+ 14.05555556,
+ 13.77777778,
+ 16.91111111,
+ 16.86666667,
+ 16.68888889,
+ 18.5,
+ 12.54444444,
+ 12.27777778,
+ 15.91111111,
+ 15.03333333,
+ 22.11111111,
+ 15.77777778,
+ 13.68888889,
+ 17.87777778,
+ 19.94444444,
+ 18.57777778,
+ 18.62222222,
+ 20.11111111,
+ 17.14444444,
+ 20.43333333,
+ 15.75555556,
+ 17.33333333,
+ 20,
+ 23.03333333,
+ 19.61111111,
+ 18.51111111,
+ 15.27777778,
+ 11.44444444,
+ 13.64444444,
+ 11.42222222,
+ 16.14444444,
+ 19.76666667,
+ 18.77777778,
+ 11.88888889,
+ 12.32222222,
+ 20.78888889,
+ 25.04444444,
+ 25.34444444,
+ 23.81111111,
+ 18.35555556,
+ 11.85555556,
+ 18.37777778,
+ 23.15555556,
+ 21.55555556,
+ 17.48888889,
+ 19.05555556,
+ 20.25555556,
+ 23.86666667,
+ 23.86666667,
+ 21.41111111,
+ 21.16666667,
+ 18.67777778,
+ 18.1,
+ 24.4,
+ 19.01111111,
+ 17.13333333,
+ 18.27777778,
+ 21.71111111,
+ 22.85555556,
+ 22.65555556,
+ 25.14444444,
+ 24.13333333,
+ 17.95555556,
+ 14.7,
+ 15.1,
+ 16.02222222,
+ 14.27777778,
+ 11.18888889,
+ 13.65555556,
+ 16.74444444,
+ 16.7,
+ 17.65555556,
+ 16.62222222,
+ 21.68888889,
+ 19.6,
+ 18.6,
+ 15.52222222,
+ 18.53333333,
+ 17.01111111,
+ 17.75555556,
+ 20.47777778,
+ 17.76666667,
+ 22.22222222,
+ 18.23333333,
+ 17.83333333,
+ 15.38888889,
+ 19.64444444,
+ 17.81111111,
+ 15.44444444,
+ 14.88888889,
+ 13.07777778,
+ 15.24444444,
+ 11.82222222,
+ 20.81111111,
+ 21.45555556,
+ 18.98888889,
+ 19.71111111,
+ 19.27777778,
+ 12.7,
+ 15.05555556,
+ 19.15555556,
+ 20.77777778,
+ 15.35555556,
+ 17.68888889,
+ 18.26666667,
+ 15.47777778,
+ 12.76666667,
+ 10.54444444,
+ 13.38888889,
+ 12.54444444,
+ 19.84444444,
+ 19.5,
+ 21.92222222,
+ 17.86666667,
+ 22.44444444,
+ 19.64444444,
+ 20.73333333,
+ 22.02222222,
+ 19,
+ 20.48888889,
+ 19.02222222,
+ 16.44444444,
+ 14.22222222,
+ 16.3,
+ 16.42222222,
+ 17.22222222,
+ 8.322222222,
+ 8.288888889,
+ 13.95555556,
+ 5.555555556,
+ 5.666666667,
+ 7.7,
+ 4.022222222,
+ 11.77777778,
+ 16.42222222,
+ 11.83333333,
+ 9.7,
+ 0.044444444,
+ 3.688888889,
+ -2.077777778,
+ 0.1,
+ -5.388888889,
+ -3.244444444,
+ 0.688888889,
+ 5.744444444,
+ -7.7,
+ -7.022222222,
+ -0.211111111,
+ 4.833333333,
+ 8.111111111,
+ 5.766666667,
+ 7.888888889,
+ 10.43333333,
+ 11.56666667,
+ 10.15555556,
+ 7.155555556,
+ 4.522222222,
+ 7.144444444,
+ 10.88888889,
+ 9.5,
+ 12.13333333,
+ 4.022222222,
+ -3.9,
+ 1.433333333,
+ 0.7,
+ 3.188888889,
+ -1.7,
+ 3.588888889,
+ -0.111111111,
+ -2.788888889,
+ -7.133333333,
+ -5,
+ 0.733333333,
+ -7.555555556,
+ -12.51111111,
+ -8.188888889,
+ 3.122222222,
+ 2.944444444,
+ 0.477777778,
+ -3.2,
+ -9.2,
+ -4.788888889,
+ -0.288888889,
+ 1.077777778,
+ 4.755555556,
+ 5.455555556,
+ 0.511111111,
+ -3.888888889,
+ -7.4,
+ -1.355555556,
+ 5.144444444,
+ 0.122222222,
+ -5.166666667,
+ -5,
+ -5.144444444,
+ -8.822222222,
+ -6.388888889,
+ -6.811111111,
+ -8.944444444,
+ -10.11111111,
+ -7.144444444,
+ -5.133333333,
+ -1.166666667,
+ 1.833333333,
+ -1.477777778,
+ -1.811111111,
+ -2.433333333,
+ -1.188888889,
+ -2.333333333,
+ 0.744444444,
+ 1.877777778,
+ 1.333333333,
+ -1.7,
+ 0.888888889,
+ -3.855555556,
+ -8.211111111,
+ -1.055555556,
+ -4.211111111,
+ -7.355555556,
+ -8.111111111,
+ -10.96666667,
+ -13.05555556,
+ -4.644444444,
+ -7.577777778,
+ ]
+ max = [
+ -7.233333333,
+ -1.6,
+ 5.488888889,
+ 7.744444444,
+ 6.188888889,
+ 6.555555556,
+ 10.53333333,
+ 6.766666667,
+ 14.1,
+ 14.11111111,
+ 2.044444444,
+ 4.633333333,
+ 2.055555556,
+ 8.666666667,
+ -1.4,
+ -5.555555556,
+ 4.177777778,
+ 11.8,
+ 15.58888889,
+ 12.31111111,
+ 3.666666667,
+ -0.977777778,
+ 1.288888889,
+ 4.211111111,
+ 9.377777778,
+ 5.266666667,
+ 2.144444444,
+ 3.977777778,
+ 7.2,
+ 11.94444444,
+ 11.32222222,
+ 4,
+ 6.611111111,
+ 8.211111111,
+ 3.5,
+ 8.866666667,
+ 3.6,
+ 3.711111111,
+ 13.12222222,
+ 7.833333333,
+ -3.333333333,
+ -2.166666667,
+ -2.877777778,
+ 5.188888889,
+ 13.12222222,
+ 12.11111111,
+ -0.7,
+ 6.688888889,
+ 14.03333333,
+ -2.433333333,
+ -8.6,
+ -8.244444444,
+ -2.122222222,
+ -2.722222222,
+ 1.266666667,
+ 2.8,
+ 5.7,
+ 6.944444444,
+ 5.066666667,
+ 5.688888889,
+ 13.35555556,
+ 16.66666667,
+ 17.33333333,
+ 7.277777778,
+ 6.388888889,
+ 1.344444444,
+ 9.111111111,
+ 17.96666667,
+ 12.8,
+ 5.8,
+ 6.911111111,
+ 6.822222222,
+ 11.87777778,
+ 13.16666667,
+ 9.233333333,
+ 8.655555556,
+ 10.04444444,
+ 7.022222222,
+ 7.644444444,
+ 8.311111111,
+ 16.71111111,
+ 18.85555556,
+ 12.14444444,
+ 13.27777778,
+ 11.18888889,
+ 7.088888889,
+ 8.255555556,
+ 7.522222222,
+ 9.955555556,
+ 9.933333333,
+ 4.866666667,
+ 15.25555556,
+ 9.244444444,
+ 9.755555556,
+ 14,
+ 8.955555556,
+ 2.344444444,
+ 17.43333333,
+ 12.12222222,
+ 13.46666667,
+ 23,
+ 18.45555556,
+ 12.77777778,
+ 7.211111111,
+ 8.588888889,
+ 14.35555556,
+ 19.01111111,
+ 12.4,
+ 9.155555556,
+ 15.6,
+ 4.955555556,
+ 8.966666667,
+ 16.95555556,
+ 9.511111111,
+ 10.15555556,
+ 16,
+ 14.45555556,
+ 21.02222222,
+ 25.76666667,
+ 20.5,
+ 15.71111111,
+ 11.67777778,
+ 12.81111111,
+ 12.88888889,
+ 17.58888889,
+ 23.12222222,
+ 21.77777778,
+ 24.42222222,
+ 20.05555556,
+ 24.32222222,
+ 18.83333333,
+ 19.56666667,
+ 14.96666667,
+ 19.68888889,
+ 18.57777778,
+ 23,
+ 23.34444444,
+ 20.7,
+ 11.82222222,
+ 11.48888889,
+ 17.52222222,
+ 22.55555556,
+ 20.47777778,
+ 23.01111111,
+ 27.86666667,
+ 30.28888889,
+ 30.3,
+ 22.94444444,
+ 18.57777778,
+ 25.51111111,
+ 24.13333333,
+ 30.01111111,
+ 24.77777778,
+ 20.28888889,
+ 28.67777778,
+ 32.74444444,
+ 31.37777778,
+ 28.52222222,
+ 31.81111111,
+ 27.24444444,
+ 32.53333333,
+ 26.15555556,
+ 24.63333333,
+ 28.3,
+ 31.23333333,
+ 32.21111111,
+ 28.21111111,
+ 23.07777778,
+ 21.64444444,
+ 24.34444444,
+ 19.62222222,
+ 25.14444444,
+ 24.46666667,
+ 23.87777778,
+ 21.28888889,
+ 20.22222222,
+ 29.98888889,
+ 32.04444444,
+ 36.44444444,
+ 36.01111111,
+ 24.85555556,
+ 23.45555556,
+ 29.17777778,
+ 32.25555556,
+ 28.75555556,
+ 30.28888889,
+ 28.85555556,
+ 30.45555556,
+ 31.26666667,
+ 28.86666667,
+ 33.31111111,
+ 30.66666667,
+ 28.67777778,
+ 27.4,
+ 32.2,
+ 25.41111111,
+ 22.23333333,
+ 26.67777778,
+ 30.21111111,
+ 29.15555556,
+ 29.65555556,
+ 31.94444444,
+ 31.43333333,
+ 28.35555556,
+ 24.8,
+ 25.5,
+ 25.42222222,
+ 24.17777778,
+ 20.88888889,
+ 24.35555556,
+ 25.54444444,
+ 22,
+ 27.95555556,
+ 29.42222222,
+ 28.88888889,
+ 26.8,
+ 28.2,
+ 26.92222222,
+ 24.13333333,
+ 22.61111111,
+ 26.15555556,
+ 30.57777778,
+ 30.86666667,
+ 29.92222222,
+ 27.33333333,
+ 23.43333333,
+ 24.68888889,
+ 26.94444444,
+ 28.81111111,
+ 25.54444444,
+ 22.48888889,
+ 21.67777778,
+ 19.74444444,
+ 23.82222222,
+ 25.91111111,
+ 30.85555556,
+ 28.48888889,
+ 29.21111111,
+ 28.37777778,
+ 22.4,
+ 25.55555556,
+ 27.35555556,
+ 30.67777778,
+ 27.95555556,
+ 25.98888889,
+ 23.46666667,
+ 25.37777778,
+ 20.46666667,
+ 22.54444444,
+ 20.18888889,
+ 22.24444444,
+ 26.84444444,
+ 25.8,
+ 29.62222222,
+ 26.36666667,
+ 32.24444444,
+ 29.84444444,
+ 28.33333333,
+ 31.22222222,
+ 29.9,
+ 29.98888889,
+ 27.42222222,
+ 25.54444444,
+ 20.22222222,
+ 24,
+ 24.52222222,
+ 25.02222222,
+ 16.12222222,
+ 17.58888889,
+ 23.25555556,
+ 15.75555556,
+ 18.66666667,
+ 18.4,
+ 12.52222222,
+ 20.07777778,
+ 28.62222222,
+ 17.23333333,
+ 16.6,
+ 13.34444444,
+ 10.98888889,
+ 9.522222222,
+ 5.8,
+ 6.811111111,
+ 6.555555556,
+ 12.18888889,
+ 12.64444444,
+ 4.2,
+ 3.577777778,
+ 8.888888889,
+ 15.23333333,
+ 16.11111111,
+ 18.36666667,
+ 16.98888889,
+ 15.63333333,
+ 16.46666667,
+ 15.55555556,
+ 15.65555556,
+ 17.42222222,
+ 18.74444444,
+ 19.48888889,
+ 15.9,
+ 19.73333333,
+ 13.02222222,
+ 8.1,
+ 8.933333333,
+ 11.3,
+ 12.38888889,
+ 8.3,
+ 12.38888889,
+ 6.388888889,
+ 4.211111111,
+ 4.666666667,
+ 0.7,
+ 7.133333333,
+ 2.344444444,
+ 1.088888889,
+ 0.111111111,
+ 11.62222222,
+ 10.84444444,
+ 8.777777778,
+ 3.5,
+ 3.4,
+ 7.211111111,
+ 5.711111111,
+ 9.677777778,
+ 12.25555556,
+ 10.15555556,
+ 6.511111111,
+ 4.911111111,
+ 1.5,
+ 11.44444444,
+ 15.54444444,
+ 8.122222222,
+ 6.233333333,
+ 7,
+ 4.355555556,
+ 0.277777778,
+ 3.711111111,
+ 2.888888889,
+ 1.555555556,
+ 3.888888889,
+ 4.555555556,
+ 5.666666667,
+ 7.833333333,
+ 9.833333333,
+ 10.02222222,
+ 6.288888889,
+ 5.366666667,
+ 11.41111111,
+ 9.566666667,
+ 9.744444444,
+ 13.57777778,
+ 9.433333333,
+ 3.1,
+ 11.08888889,
+ 3.844444444,
+ 2.488888889,
+ 7.544444444,
+ 4.488888889,
+ -0.455555556,
+ -2.111111111,
+ -3.566666667,
+ -1.955555556,
+ 3.955555556,
+ 1.222222222,
+ ]
+ week_number = [f"W{i//7}" if i % 7 == 0 else None for i in range(0, 365)]
-start = 50
-size = 100
-data = {
- "Date": dates[start:size],
- "Temp°C": temp[start:size],
- "Week": numpy.array(max[start:size]) + 5,
- "WeekN": week_number[start:size],
-}
+ start = 50
+ size = 100
+ data = {
+ "Date": dates[start:size],
+ "Temp°C": temp[start:size],
+ "Week": numpy.array(max[start:size]) + 5,
+ "WeekN": week_number[start:size],
+ }
-page = """
+ page = """
# Line - Texts
<|{data}|chart|x=Date|y[1]=Temp°C|y[2]=Week|mode[2]=text|text[2]=WeekN|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/map-bubbles.py b/doc/gui/examples/charts/map-bubbles.py
index bf52f147c3..491dbebb50 100644
--- a/doc/gui/examples/charts/map-bubbles.py
+++ b/doc/gui/examples/charts/map-bubbles.py
@@ -18,135 +18,136 @@
from taipy.gui import Gui
-# Largest cities: name, location and population
-# Source: https://simplemaps.com/data/world-cities
-cities = [
- {"name": "Tokyo", "lat": 35.6839, "lon": 139.7744, "population": 39105000},
- {"name": "Jakarta", "lat": -6.2146, "lon": 106.8451, "population": 35362000},
- {"name": "Delhi", "lat": 28.6667, "lon": 77.2167, "population": 31870000},
- {"name": "Manila", "lat": 14.6, "lon": 120.9833, "population": 23971000},
- {"name": "São Paulo", "lat": -23.5504, "lon": -46.6339, "population": 22495000},
- {"name": "Seoul", "lat": 37.56, "lon": 126.99, "population": 22394000},
- {"name": "Mumbai", "lat": 19.0758, "lon": 72.8775, "population": 22186000},
- {"name": "Shanghai", "lat": 31.1667, "lon": 121.4667, "population": 22118000},
- {"name": "Mexico City", "lat": 19.4333, "lon": -99.1333, "population": 21505000},
- {"name": "Guangzhou", "lat": 23.1288, "lon": 113.259, "population": 21489000},
- {"name": "Cairo", "lat": 30.0444, "lon": 31.2358, "population": 19787000},
- {"name": "Beijing", "lat": 39.904, "lon": 116.4075, "population": 19437000},
- {"name": "New York", "lat": 40.6943, "lon": -73.9249, "population": 18713220},
- {"name": "Kolkāta", "lat": 22.5727, "lon": 88.3639, "population": 18698000},
- {"name": "Moscow", "lat": 55.7558, "lon": 37.6178, "population": 17693000},
- {"name": "Bangkok", "lat": 13.75, "lon": 100.5167, "population": 17573000},
- {"name": "Dhaka", "lat": 23.7289, "lon": 90.3944, "population": 16839000},
- {"name": "Buenos Aires", "lat": -34.5997, "lon": -58.3819, "population": 16216000},
- {"name": "Ōsaka", "lat": 34.752, "lon": 135.4582, "population": 15490000},
- {"name": "Lagos", "lat": 6.45, "lon": 3.4, "population": 15487000},
- {"name": "Istanbul", "lat": 41.01, "lon": 28.9603, "population": 15311000},
- {"name": "Karachi", "lat": 24.86, "lon": 67.01, "population": 15292000},
- {"name": "Kinshasa", "lat": -4.3317, "lon": 15.3139, "population": 15056000},
- {"name": "Shenzhen", "lat": 22.535, "lon": 114.054, "population": 14678000},
- {"name": "Bangalore", "lat": 12.9791, "lon": 77.5913, "population": 13999000},
- {"name": "Ho Chi Minh City", "lat": 10.8167, "lon": 106.6333, "population": 13954000},
- {"name": "Tehran", "lat": 35.7, "lon": 51.4167, "population": 13819000},
- {"name": "Los Angeles", "lat": 34.1139, "lon": -118.4068, "population": 12750807},
- {"name": "Rio de Janeiro", "lat": -22.9083, "lon": -43.1964, "population": 12486000},
- {"name": "Chengdu", "lat": 30.66, "lon": 104.0633, "population": 11920000},
- {"name": "Baoding", "lat": 38.8671, "lon": 115.4845, "population": 11860000},
- {"name": "Chennai", "lat": 13.0825, "lon": 80.275, "population": 11564000},
- {"name": "Lahore", "lat": 31.5497, "lon": 74.3436, "population": 11148000},
- {"name": "London", "lat": 51.5072, "lon": -0.1275, "population": 11120000},
- {"name": "Paris", "lat": 48.8566, "lon": 2.3522, "population": 11027000},
- {"name": "Tianjin", "lat": 39.1467, "lon": 117.2056, "population": 10932000},
- {"name": "Linyi", "lat": 35.0606, "lon": 118.3425, "population": 10820000},
- {"name": "Shijiazhuang", "lat": 38.0422, "lon": 114.5086, "population": 10784600},
- {"name": "Zhengzhou", "lat": 34.7492, "lon": 113.6605, "population": 10136000},
- {"name": "Nanyang", "lat": 32.9987, "lon": 112.5292, "population": 10013600},
- {"name": "Hyderābād", "lat": 17.3617, "lon": 78.4747, "population": 9840000},
- {"name": "Wuhan", "lat": 30.5872, "lon": 114.2881, "population": 9729000},
- {"name": "Handan", "lat": 36.6116, "lon": 114.4894, "population": 9549700},
- {"name": "Nagoya", "lat": 35.1167, "lon": 136.9333, "population": 9522000},
- {"name": "Weifang", "lat": 36.7167, "lon": 119.1, "population": 9373000},
- {"name": "Lima", "lat": -12.06, "lon": -77.0375, "population": 8992000},
- {"name": "Zhoukou", "lat": 33.625, "lon": 114.6418, "population": 8953172},
- {"name": "Luanda", "lat": -8.8383, "lon": 13.2344, "population": 8883000},
- {"name": "Ganzhou", "lat": 25.8292, "lon": 114.9336, "population": 8677600},
- {"name": "Tongshan", "lat": 34.261, "lon": 117.1859, "population": 8669000},
- {"name": "Kuala Lumpur", "lat": 3.1478, "lon": 101.6953, "population": 8639000},
- {"name": "Chicago", "lat": 41.8373, "lon": -87.6862, "population": 8604203},
- {"name": "Heze", "lat": 35.2333, "lon": 115.4333, "population": 8287693},
- {"name": "Chongqing", "lat": 29.55, "lon": 106.5069, "population": 8261000},
- {"name": "Hanoi", "lat": 21.0245, "lon": 105.8412, "population": 8246600},
- {"name": "Fuyang", "lat": 32.8986, "lon": 115.8045, "population": 8200264},
- {"name": "Changsha", "lat": 28.1987, "lon": 112.9709, "population": 8154700},
- {"name": "Dongguan", "lat": 23.0475, "lon": 113.7493, "population": 8142000},
- {"name": "Jining", "lat": 35.4, "lon": 116.5667, "population": 8081905},
- {"name": "Jinan", "lat": 36.6667, "lon": 116.9833, "population": 7967400},
- {"name": "Pune", "lat": 18.5196, "lon": 73.8553, "population": 7948000},
- {"name": "Foshan", "lat": 23.0292, "lon": 113.1056, "population": 7905700},
- {"name": "Bogotá", "lat": 4.6126, "lon": -74.0705, "population": 7743955},
- {"name": "Ahmedabad", "lat": 23.03, "lon": 72.58, "population": 7717000},
- {"name": "Nanjing", "lat": 32.05, "lon": 118.7667, "population": 7729000},
- {"name": "Changchun", "lat": 43.9, "lon": 125.2, "population": 7674439},
- {"name": "Tangshan", "lat": 39.6292, "lon": 118.1742, "population": 7577289},
- {"name": "Cangzhou", "lat": 38.3037, "lon": 116.8452, "population": 7544300},
- {"name": "Dar es Salaam", "lat": -6.8, "lon": 39.2833, "population": 7461000},
- {"name": "Hefei", "lat": 31.8639, "lon": 117.2808, "population": 7457027},
- {"name": "Hong Kong", "lat": 22.3069, "lon": 114.1831, "population": 7398000},
- {"name": "Shaoyang", "lat": 27.2418, "lon": 111.4725, "population": 7370500},
- {"name": "Zhanjiang", "lat": 21.1967, "lon": 110.4031, "population": 7332000},
- {"name": "Shangqiu", "lat": 34.4259, "lon": 115.6467, "population": 7325300},
- {"name": "Nantong", "lat": 31.9829, "lon": 120.8873, "population": 7283622},
- {"name": "Yancheng", "lat": 33.3936, "lon": 120.1339, "population": 7260240},
- {"name": "Nanning", "lat": 22.8192, "lon": 108.315, "population": 7254100},
- {"name": "Hengyang", "lat": 26.8968, "lon": 112.5857, "population": 7243400},
- {"name": "Zhumadian", "lat": 32.9773, "lon": 114.0253, "population": 7231234},
- {"name": "Shenyang", "lat": 41.8039, "lon": 123.4258, "population": 7208000},
- {"name": "Xingtai", "lat": 37.0659, "lon": 114.4753, "population": 7104103},
- {"name": "Xi’an", "lat": 34.2667, "lon": 108.9, "population": 7090000},
- {"name": "Santiago", "lat": -33.45, "lon": -70.6667, "population": 7026000},
- {"name": "Yantai", "lat": 37.3997, "lon": 121.2664, "population": 6968202},
- {"name": "Riyadh", "lat": 24.65, "lon": 46.71, "population": 6889000},
- {"name": "Luoyang", "lat": 34.6587, "lon": 112.4245, "population": 6888500},
- {"name": "Kunming", "lat": 25.0433, "lon": 102.7061, "population": 6850000},
- {"name": "Shangrao", "lat": 28.4419, "lon": 117.9633, "population": 6810700},
- {"name": "Hangzhou", "lat": 30.25, "lon": 120.1675, "population": 6713000},
- {"name": "Bijie", "lat": 27.3019, "lon": 105.2863, "population": 6686100},
- {"name": "Quanzhou", "lat": 24.9139, "lon": 118.5858, "population": 6480000},
- {"name": "Miami", "lat": 25.7839, "lon": -80.2102, "population": 6445545},
- {"name": "Wuxi", "lat": 31.5667, "lon": 120.2833, "population": 6372624},
- {"name": "Huanggang", "lat": 30.45, "lon": 114.875, "population": 6333000},
- {"name": "Maoming", "lat": 21.6618, "lon": 110.9178, "population": 6313200},
- {"name": "Nanchong", "lat": 30.7991, "lon": 106.0784, "population": 6278614},
- {"name": "Zunyi", "lat": 27.705, "lon": 106.9336, "population": 6270700},
- {"name": "Qujing", "lat": 25.5102, "lon": 103.8029, "population": 6155400},
- {"name": "Baghdad", "lat": 33.35, "lon": 44.4167, "population": 6107000},
- {"name": "Xinyang", "lat": 32.1264, "lon": 114.0672, "population": 6109106},
-]
+if __name__ == "__main__":
+ # Largest cities: name, location and population
+ # Source: https://simplemaps.com/data/world-cities
+ cities = [
+ {"name": "Tokyo", "lat": 35.6839, "lon": 139.7744, "population": 39105000},
+ {"name": "Jakarta", "lat": -6.2146, "lon": 106.8451, "population": 35362000},
+ {"name": "Delhi", "lat": 28.6667, "lon": 77.2167, "population": 31870000},
+ {"name": "Manila", "lat": 14.6, "lon": 120.9833, "population": 23971000},
+ {"name": "São Paulo", "lat": -23.5504, "lon": -46.6339, "population": 22495000},
+ {"name": "Seoul", "lat": 37.56, "lon": 126.99, "population": 22394000},
+ {"name": "Mumbai", "lat": 19.0758, "lon": 72.8775, "population": 22186000},
+ {"name": "Shanghai", "lat": 31.1667, "lon": 121.4667, "population": 22118000},
+ {"name": "Mexico City", "lat": 19.4333, "lon": -99.1333, "population": 21505000},
+ {"name": "Guangzhou", "lat": 23.1288, "lon": 113.259, "population": 21489000},
+ {"name": "Cairo", "lat": 30.0444, "lon": 31.2358, "population": 19787000},
+ {"name": "Beijing", "lat": 39.904, "lon": 116.4075, "population": 19437000},
+ {"name": "New York", "lat": 40.6943, "lon": -73.9249, "population": 18713220},
+ {"name": "Kolkāta", "lat": 22.5727, "lon": 88.3639, "population": 18698000},
+ {"name": "Moscow", "lat": 55.7558, "lon": 37.6178, "population": 17693000},
+ {"name": "Bangkok", "lat": 13.75, "lon": 100.5167, "population": 17573000},
+ {"name": "Dhaka", "lat": 23.7289, "lon": 90.3944, "population": 16839000},
+ {"name": "Buenos Aires", "lat": -34.5997, "lon": -58.3819, "population": 16216000},
+ {"name": "Ōsaka", "lat": 34.752, "lon": 135.4582, "population": 15490000},
+ {"name": "Lagos", "lat": 6.45, "lon": 3.4, "population": 15487000},
+ {"name": "Istanbul", "lat": 41.01, "lon": 28.9603, "population": 15311000},
+ {"name": "Karachi", "lat": 24.86, "lon": 67.01, "population": 15292000},
+ {"name": "Kinshasa", "lat": -4.3317, "lon": 15.3139, "population": 15056000},
+ {"name": "Shenzhen", "lat": 22.535, "lon": 114.054, "population": 14678000},
+ {"name": "Bangalore", "lat": 12.9791, "lon": 77.5913, "population": 13999000},
+ {"name": "Ho Chi Minh City", "lat": 10.8167, "lon": 106.6333, "population": 13954000},
+ {"name": "Tehran", "lat": 35.7, "lon": 51.4167, "population": 13819000},
+ {"name": "Los Angeles", "lat": 34.1139, "lon": -118.4068, "population": 12750807},
+ {"name": "Rio de Janeiro", "lat": -22.9083, "lon": -43.1964, "population": 12486000},
+ {"name": "Chengdu", "lat": 30.66, "lon": 104.0633, "population": 11920000},
+ {"name": "Baoding", "lat": 38.8671, "lon": 115.4845, "population": 11860000},
+ {"name": "Chennai", "lat": 13.0825, "lon": 80.275, "population": 11564000},
+ {"name": "Lahore", "lat": 31.5497, "lon": 74.3436, "population": 11148000},
+ {"name": "London", "lat": 51.5072, "lon": -0.1275, "population": 11120000},
+ {"name": "Paris", "lat": 48.8566, "lon": 2.3522, "population": 11027000},
+ {"name": "Tianjin", "lat": 39.1467, "lon": 117.2056, "population": 10932000},
+ {"name": "Linyi", "lat": 35.0606, "lon": 118.3425, "population": 10820000},
+ {"name": "Shijiazhuang", "lat": 38.0422, "lon": 114.5086, "population": 10784600},
+ {"name": "Zhengzhou", "lat": 34.7492, "lon": 113.6605, "population": 10136000},
+ {"name": "Nanyang", "lat": 32.9987, "lon": 112.5292, "population": 10013600},
+ {"name": "Hyderābād", "lat": 17.3617, "lon": 78.4747, "population": 9840000},
+ {"name": "Wuhan", "lat": 30.5872, "lon": 114.2881, "population": 9729000},
+ {"name": "Handan", "lat": 36.6116, "lon": 114.4894, "population": 9549700},
+ {"name": "Nagoya", "lat": 35.1167, "lon": 136.9333, "population": 9522000},
+ {"name": "Weifang", "lat": 36.7167, "lon": 119.1, "population": 9373000},
+ {"name": "Lima", "lat": -12.06, "lon": -77.0375, "population": 8992000},
+ {"name": "Zhoukou", "lat": 33.625, "lon": 114.6418, "population": 8953172},
+ {"name": "Luanda", "lat": -8.8383, "lon": 13.2344, "population": 8883000},
+ {"name": "Ganzhou", "lat": 25.8292, "lon": 114.9336, "population": 8677600},
+ {"name": "Tongshan", "lat": 34.261, "lon": 117.1859, "population": 8669000},
+ {"name": "Kuala Lumpur", "lat": 3.1478, "lon": 101.6953, "population": 8639000},
+ {"name": "Chicago", "lat": 41.8373, "lon": -87.6862, "population": 8604203},
+ {"name": "Heze", "lat": 35.2333, "lon": 115.4333, "population": 8287693},
+ {"name": "Chongqing", "lat": 29.55, "lon": 106.5069, "population": 8261000},
+ {"name": "Hanoi", "lat": 21.0245, "lon": 105.8412, "population": 8246600},
+ {"name": "Fuyang", "lat": 32.8986, "lon": 115.8045, "population": 8200264},
+ {"name": "Changsha", "lat": 28.1987, "lon": 112.9709, "population": 8154700},
+ {"name": "Dongguan", "lat": 23.0475, "lon": 113.7493, "population": 8142000},
+ {"name": "Jining", "lat": 35.4, "lon": 116.5667, "population": 8081905},
+ {"name": "Jinan", "lat": 36.6667, "lon": 116.9833, "population": 7967400},
+ {"name": "Pune", "lat": 18.5196, "lon": 73.8553, "population": 7948000},
+ {"name": "Foshan", "lat": 23.0292, "lon": 113.1056, "population": 7905700},
+ {"name": "Bogotá", "lat": 4.6126, "lon": -74.0705, "population": 7743955},
+ {"name": "Ahmedabad", "lat": 23.03, "lon": 72.58, "population": 7717000},
+ {"name": "Nanjing", "lat": 32.05, "lon": 118.7667, "population": 7729000},
+ {"name": "Changchun", "lat": 43.9, "lon": 125.2, "population": 7674439},
+ {"name": "Tangshan", "lat": 39.6292, "lon": 118.1742, "population": 7577289},
+ {"name": "Cangzhou", "lat": 38.3037, "lon": 116.8452, "population": 7544300},
+ {"name": "Dar es Salaam", "lat": -6.8, "lon": 39.2833, "population": 7461000},
+ {"name": "Hefei", "lat": 31.8639, "lon": 117.2808, "population": 7457027},
+ {"name": "Hong Kong", "lat": 22.3069, "lon": 114.1831, "population": 7398000},
+ {"name": "Shaoyang", "lat": 27.2418, "lon": 111.4725, "population": 7370500},
+ {"name": "Zhanjiang", "lat": 21.1967, "lon": 110.4031, "population": 7332000},
+ {"name": "Shangqiu", "lat": 34.4259, "lon": 115.6467, "population": 7325300},
+ {"name": "Nantong", "lat": 31.9829, "lon": 120.8873, "population": 7283622},
+ {"name": "Yancheng", "lat": 33.3936, "lon": 120.1339, "population": 7260240},
+ {"name": "Nanning", "lat": 22.8192, "lon": 108.315, "population": 7254100},
+ {"name": "Hengyang", "lat": 26.8968, "lon": 112.5857, "population": 7243400},
+ {"name": "Zhumadian", "lat": 32.9773, "lon": 114.0253, "population": 7231234},
+ {"name": "Shenyang", "lat": 41.8039, "lon": 123.4258, "population": 7208000},
+ {"name": "Xingtai", "lat": 37.0659, "lon": 114.4753, "population": 7104103},
+ {"name": "Xi’an", "lat": 34.2667, "lon": 108.9, "population": 7090000},
+ {"name": "Santiago", "lat": -33.45, "lon": -70.6667, "population": 7026000},
+ {"name": "Yantai", "lat": 37.3997, "lon": 121.2664, "population": 6968202},
+ {"name": "Riyadh", "lat": 24.65, "lon": 46.71, "population": 6889000},
+ {"name": "Luoyang", "lat": 34.6587, "lon": 112.4245, "population": 6888500},
+ {"name": "Kunming", "lat": 25.0433, "lon": 102.7061, "population": 6850000},
+ {"name": "Shangrao", "lat": 28.4419, "lon": 117.9633, "population": 6810700},
+ {"name": "Hangzhou", "lat": 30.25, "lon": 120.1675, "population": 6713000},
+ {"name": "Bijie", "lat": 27.3019, "lon": 105.2863, "population": 6686100},
+ {"name": "Quanzhou", "lat": 24.9139, "lon": 118.5858, "population": 6480000},
+ {"name": "Miami", "lat": 25.7839, "lon": -80.2102, "population": 6445545},
+ {"name": "Wuxi", "lat": 31.5667, "lon": 120.2833, "population": 6372624},
+ {"name": "Huanggang", "lat": 30.45, "lon": 114.875, "population": 6333000},
+ {"name": "Maoming", "lat": 21.6618, "lon": 110.9178, "population": 6313200},
+ {"name": "Nanchong", "lat": 30.7991, "lon": 106.0784, "population": 6278614},
+ {"name": "Zunyi", "lat": 27.705, "lon": 106.9336, "population": 6270700},
+ {"name": "Qujing", "lat": 25.5102, "lon": 103.8029, "population": 6155400},
+ {"name": "Baghdad", "lat": 33.35, "lon": 44.4167, "population": 6107000},
+ {"name": "Xinyang", "lat": 32.1264, "lon": 114.0672, "population": 6109106},
+ ]
-# Convert to Pandas DataFrame
-data = pandas.DataFrame(cities)
+ # Convert to Pandas DataFrame
+ data = pandas.DataFrame(cities)
-# Add a column holding the bubble size:
-# Min(population) -> size = 5
-# Max(population) -> size = 60
-solve = numpy.linalg.solve([[data["population"].min(), 1], [data["population"].max(), 1]], [5, 60])
-data["size"] = data["population"].apply(lambda p: p * solve[0] + solve[1])
+ # Add a column holding the bubble size:
+ # Min(population) -> size = 5
+ # Max(population) -> size = 60
+ solve = numpy.linalg.solve([[data["population"].min(), 1], [data["population"].max(), 1]], [5, 60])
+ data["size"] = data["population"].apply(lambda p: p * solve[0] + solve[1])
-# Add a column holding the bubble hover texts
-# Format is " []"
-data["text"] = data.apply(lambda row: f"{row['name']} [{row['population']}]", axis=1)
+ # Add a column holding the bubble hover texts
+ # Format is " []"
+ data["text"] = data.apply(lambda row: f"{row['name']} [{row['population']}]", axis=1)
-marker = {
- # Use the "size" column to set the bubble size
- "size": "size"
-}
+ marker = {
+ # Use the "size" column to set the bubble size
+ "size": "size"
+ }
-layout = {"geo": {"showland": True, "landcolor": "4A4"}}
+ layout = {"geo": {"showland": True, "landcolor": "4A4"}}
-page = """
+ page = """
# Maps - Bubbles
<|{data}|chart|type=scattergeo|lat=lat|lon=lon|mode=markers|marker={marker}|text=text|layout={layout}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/map-lines.py b/doc/gui/examples/charts/map-lines.py
index d2b5d95e4c..a0166ae6d5 100644
--- a/doc/gui/examples/charts/map-lines.py
+++ b/doc/gui/examples/charts/map-lines.py
@@ -17,162 +17,163 @@
from taipy.gui import Gui
-# Busiest US airports
-# Source: https://en.wikipedia.org/wiki/List_of_busiest_airports_by_passenger_traffic
-airports: Dict[str, Dict[str, float]] = {
- "AMS": {"lat": 52.31047296675518, "lon": 4.76819929439927},
- "ATL": {"lat": 33.64086185344307, "lon": -84.43600501711686},
- "AYT": {"lat": 36.90419539293911, "lon": 30.801855337974292},
- "BOS": {"lat": 42.36556559649881, "lon": -71.00960311751096},
- "CAN": {"lat": 23.38848323741897, "lon": 113.30277713668413},
- "CDG": {"lat": 49.008029034119915, "lon": 2.550879924581871},
- "CJU": {"lat": 33.51035978854847, "lon": 126.4913319405336},
- "CKG": {"lat": 29.71931573810283, "lon": 106.64211731662628},
- "CLT": {"lat": 35.214730980190616, "lon": -80.9474735034797},
- "CSX": {"lat": 28.196638298182446, "lon": 113.22083329905352},
- "CTU": {"lat": 30.567492917634063, "lon": 103.94912193845805},
- "CUN": {"lat": 21.04160313837335, "lon": -86.87407057500725},
- "DEL": {"lat": 28.556426221725868, "lon": 77.10031185913002},
- "DEN": {"lat": 39.85589532386815, "lon": -104.67329901305273},
- "DFW": {"lat": 32.89998507111719, "lon": -97.04044513206443},
- "DME": {"lat": 55.41032513421412, "lon": 37.902386927376234},
- "DTW": {"lat": 42.216145762248594, "lon": -83.35541784824225},
- "DXB": {"lat": 25.253155060720765, "lon": 55.365672799304534},
- "EWR": {"lat": 40.68951508829295, "lon": -74.17446240095387},
- "FLL": {"lat": 26.072469069499288, "lon": -80.1502073285754},
- "FRA": {"lat": 50.037870541116, "lon": 8.562119610188235},
- "GMP": {"lat": 37.558628944763534, "lon": 126.79445244110332},
- "GRU": {"lat": -23.430691200492866, "lon": -46.473107371367846},
- "HGH": {"lat": 30.2359856421667, "lon": 120.43880486944619},
- "HND": {"lat": 35.54938443207139, "lon": 139.77979568388005},
- "IAH": {"lat": 29.98997826322153, "lon": -95.33684707873988},
- "IST": {"lat": 41.27696594578831, "lon": 28.73004303446375},
- "JFK": {"lat": 40.64129497654287, "lon": -73.77813830094803},
- "KMG": {"lat": 24.99723271310971, "lon": 102.74030761670535},
- "LAS": {"lat": 36.08256046166282, "lon": -115.15700045025673},
- "LAX": {"lat": 33.94157995977848, "lon": -118.40848708486908},
- "MAD": {"lat": 40.49832400063489, "lon": -3.5676196584173754},
- "MCO": {"lat": 28.419119921670067, "lon": -81.30451008534465},
- "MEX": {"lat": 19.436096410278736, "lon": -99.07204777544095},
- "MIA": {"lat": 25.795823878101675, "lon": -80.28701871639629},
- "MSP": {"lat": 44.88471735079015, "lon": -93.22233824616785},
- "ORD": {"lat": 41.98024003208415, "lon": -87.9089657513565},
- "PEK": {"lat": 40.079816213451416, "lon": 116.60309064055198},
- "PHX": {"lat": 33.43614430802288, "lon": -112.01128270596944},
- "PKX": {"lat": 39.50978840400886, "lon": 116.41050689906415},
- "PVG": {"lat": 31.144398958515847, "lon": 121.80823008537978},
- "SAW": {"lat": 40.9053709590178, "lon": 29.316838841845318},
- "SEA": {"lat": 47.448024349661814, "lon": -122.30897973141963},
- "SFO": {"lat": 37.62122788155908, "lon": -122.37901977603573},
- "SHA": {"lat": 31.192227319334787, "lon": 121.33425408454256},
- "SLC": {"lat": 40.78985913031307, "lon": -111.97911351851535},
- "SVO": {"lat": 55.97381026156798, "lon": 37.412288430689664},
- "SZX": {"lat": 22.636827890877626, "lon": 113.81454162446936},
- "WUH": {"lat": 30.776589409566686, "lon": 114.21244949898504},
- "XIY": {"lat": 34.437119809208546, "lon": 108.7573508575816},
-}
+if __name__ == "__main__":
+ # Busiest US airports
+ # Source: https://en.wikipedia.org/wiki/List_of_busiest_airports_by_passenger_traffic
+ airports: Dict[str, Dict[str, float]] = {
+ "AMS": {"lat": 52.31047296675518, "lon": 4.76819929439927},
+ "ATL": {"lat": 33.64086185344307, "lon": -84.43600501711686},
+ "AYT": {"lat": 36.90419539293911, "lon": 30.801855337974292},
+ "BOS": {"lat": 42.36556559649881, "lon": -71.00960311751096},
+ "CAN": {"lat": 23.38848323741897, "lon": 113.30277713668413},
+ "CDG": {"lat": 49.008029034119915, "lon": 2.550879924581871},
+ "CJU": {"lat": 33.51035978854847, "lon": 126.4913319405336},
+ "CKG": {"lat": 29.71931573810283, "lon": 106.64211731662628},
+ "CLT": {"lat": 35.214730980190616, "lon": -80.9474735034797},
+ "CSX": {"lat": 28.196638298182446, "lon": 113.22083329905352},
+ "CTU": {"lat": 30.567492917634063, "lon": 103.94912193845805},
+ "CUN": {"lat": 21.04160313837335, "lon": -86.87407057500725},
+ "DEL": {"lat": 28.556426221725868, "lon": 77.10031185913002},
+ "DEN": {"lat": 39.85589532386815, "lon": -104.67329901305273},
+ "DFW": {"lat": 32.89998507111719, "lon": -97.04044513206443},
+ "DME": {"lat": 55.41032513421412, "lon": 37.902386927376234},
+ "DTW": {"lat": 42.216145762248594, "lon": -83.35541784824225},
+ "DXB": {"lat": 25.253155060720765, "lon": 55.365672799304534},
+ "EWR": {"lat": 40.68951508829295, "lon": -74.17446240095387},
+ "FLL": {"lat": 26.072469069499288, "lon": -80.1502073285754},
+ "FRA": {"lat": 50.037870541116, "lon": 8.562119610188235},
+ "GMP": {"lat": 37.558628944763534, "lon": 126.79445244110332},
+ "GRU": {"lat": -23.430691200492866, "lon": -46.473107371367846},
+ "HGH": {"lat": 30.2359856421667, "lon": 120.43880486944619},
+ "HND": {"lat": 35.54938443207139, "lon": 139.77979568388005},
+ "IAH": {"lat": 29.98997826322153, "lon": -95.33684707873988},
+ "IST": {"lat": 41.27696594578831, "lon": 28.73004303446375},
+ "JFK": {"lat": 40.64129497654287, "lon": -73.77813830094803},
+ "KMG": {"lat": 24.99723271310971, "lon": 102.74030761670535},
+ "LAS": {"lat": 36.08256046166282, "lon": -115.15700045025673},
+ "LAX": {"lat": 33.94157995977848, "lon": -118.40848708486908},
+ "MAD": {"lat": 40.49832400063489, "lon": -3.5676196584173754},
+ "MCO": {"lat": 28.419119921670067, "lon": -81.30451008534465},
+ "MEX": {"lat": 19.436096410278736, "lon": -99.07204777544095},
+ "MIA": {"lat": 25.795823878101675, "lon": -80.28701871639629},
+ "MSP": {"lat": 44.88471735079015, "lon": -93.22233824616785},
+ "ORD": {"lat": 41.98024003208415, "lon": -87.9089657513565},
+ "PEK": {"lat": 40.079816213451416, "lon": 116.60309064055198},
+ "PHX": {"lat": 33.43614430802288, "lon": -112.01128270596944},
+ "PKX": {"lat": 39.50978840400886, "lon": 116.41050689906415},
+ "PVG": {"lat": 31.144398958515847, "lon": 121.80823008537978},
+ "SAW": {"lat": 40.9053709590178, "lon": 29.316838841845318},
+ "SEA": {"lat": 47.448024349661814, "lon": -122.30897973141963},
+ "SFO": {"lat": 37.62122788155908, "lon": -122.37901977603573},
+ "SHA": {"lat": 31.192227319334787, "lon": 121.33425408454256},
+ "SLC": {"lat": 40.78985913031307, "lon": -111.97911351851535},
+ "SVO": {"lat": 55.97381026156798, "lon": 37.412288430689664},
+ "SZX": {"lat": 22.636827890877626, "lon": 113.81454162446936},
+ "WUH": {"lat": 30.776589409566686, "lon": 114.21244949898504},
+ "XIY": {"lat": 34.437119809208546, "lon": 108.7573508575816},
+ }
-# Inter US airports flights
-# Source: https://www.faa.gov/air_traffic/by_the_numbers
-flights: List[Dict[str, Any]] = [
- {"from": "ATL", "to": "DFW", "traffic": 580},
- {"from": "ATL", "to": "MIA", "traffic": 224},
- {"from": "BOS", "to": "LAX", "traffic": 168},
- {"from": "DEN", "to": "DFW", "traffic": 558},
- {"from": "DFW", "to": "BOS", "traffic": 422},
- {"from": "DFW", "to": "CLT", "traffic": 360},
- {"from": "DFW", "to": "JFK", "traffic": 56},
- {"from": "DFW", "to": "LAS", "traffic": 569},
- {"from": "DFW", "to": "SEA", "traffic": 392},
- {"from": "DTW", "to": "DFW", "traffic": 260},
- {"from": "EWR", "to": "DFW", "traffic": 310},
- {"from": "EWR", "to": "ORD", "traffic": 168},
- {"from": "FLL", "to": "DFW", "traffic": 336},
- {"from": "FLL", "to": "ORD", "traffic": 168},
- {"from": "IAH", "to": "DFW", "traffic": 324},
- {"from": "JFK", "to": "FLL", "traffic": 112},
- {"from": "JFK", "to": "LAS", "traffic": 112},
- {"from": "JFK", "to": "LAX", "traffic": 548},
- {"from": "JFK", "to": "ORD", "traffic": 56},
- {"from": "LAS", "to": "MIA", "traffic": 168},
- {"from": "LAX", "to": "DFW", "traffic": 914},
- {"from": "LAX", "to": "EWR", "traffic": 54},
- {"from": "LAX", "to": "LAS", "traffic": 222},
- {"from": "LAX", "to": "MCO", "traffic": 56},
- {"from": "LAX", "to": "MIA", "traffic": 392},
- {"from": "LAX", "to": "SFO", "traffic": 336},
- {"from": "MCO", "to": "DFW", "traffic": 500},
- {"from": "MCO", "to": "JFK", "traffic": 224},
- {"from": "MCO", "to": "ORD", "traffic": 224},
- {"from": "MIA", "to": "BOS", "traffic": 392},
- {"from": "MIA", "to": "DEN", "traffic": 112},
- {"from": "MIA", "to": "DFW", "traffic": 560},
- {"from": "MIA", "to": "DTW", "traffic": 112},
- {"from": "MIA", "to": "EWR", "traffic": 168},
- {"from": "MIA", "to": "IAH", "traffic": 168},
- {"from": "MIA", "to": "JFK", "traffic": 392},
- {"from": "MIA", "to": "MCO", "traffic": 448},
- {"from": "MSP", "to": "DFW", "traffic": 326},
- {"from": "MSP", "to": "MIA", "traffic": 56},
- {"from": "ORD", "to": "BOS", "traffic": 430},
- {"from": "ORD", "to": "DEN", "traffic": 112},
- {"from": "ORD", "to": "DFW", "traffic": 825},
- {"from": "ORD", "to": "LAS", "traffic": 280},
- {"from": "ORD", "to": "LAX", "traffic": 496},
- {"from": "ORD", "to": "MIA", "traffic": 505},
- {"from": "ORD", "to": "MSP", "traffic": 160},
- {"from": "ORD", "to": "PHX", "traffic": 280},
- {"from": "ORD", "to": "SEA", "traffic": 214},
- {"from": "ORD", "to": "SFO", "traffic": 326},
- {"from": "PHX", "to": "DFW", "traffic": 550},
- {"from": "PHX", "to": "MIA", "traffic": 56},
- {"from": "SEA", "to": "JFK", "traffic": 56},
- {"from": "SFO", "to": "DFW", "traffic": 526},
- {"from": "SFO", "to": "JFK", "traffic": 278},
- {"from": "SFO", "to": "MIA", "traffic": 168},
- {"from": "SLC", "to": "DFW", "traffic": 280},
-]
+ # Inter US airports flights
+ # Source: https://www.faa.gov/air_traffic/by_the_numbers
+ flights: List[Dict[str, Any]] = [
+ {"from": "ATL", "to": "DFW", "traffic": 580},
+ {"from": "ATL", "to": "MIA", "traffic": 224},
+ {"from": "BOS", "to": "LAX", "traffic": 168},
+ {"from": "DEN", "to": "DFW", "traffic": 558},
+ {"from": "DFW", "to": "BOS", "traffic": 422},
+ {"from": "DFW", "to": "CLT", "traffic": 360},
+ {"from": "DFW", "to": "JFK", "traffic": 56},
+ {"from": "DFW", "to": "LAS", "traffic": 569},
+ {"from": "DFW", "to": "SEA", "traffic": 392},
+ {"from": "DTW", "to": "DFW", "traffic": 260},
+ {"from": "EWR", "to": "DFW", "traffic": 310},
+ {"from": "EWR", "to": "ORD", "traffic": 168},
+ {"from": "FLL", "to": "DFW", "traffic": 336},
+ {"from": "FLL", "to": "ORD", "traffic": 168},
+ {"from": "IAH", "to": "DFW", "traffic": 324},
+ {"from": "JFK", "to": "FLL", "traffic": 112},
+ {"from": "JFK", "to": "LAS", "traffic": 112},
+ {"from": "JFK", "to": "LAX", "traffic": 548},
+ {"from": "JFK", "to": "ORD", "traffic": 56},
+ {"from": "LAS", "to": "MIA", "traffic": 168},
+ {"from": "LAX", "to": "DFW", "traffic": 914},
+ {"from": "LAX", "to": "EWR", "traffic": 54},
+ {"from": "LAX", "to": "LAS", "traffic": 222},
+ {"from": "LAX", "to": "MCO", "traffic": 56},
+ {"from": "LAX", "to": "MIA", "traffic": 392},
+ {"from": "LAX", "to": "SFO", "traffic": 336},
+ {"from": "MCO", "to": "DFW", "traffic": 500},
+ {"from": "MCO", "to": "JFK", "traffic": 224},
+ {"from": "MCO", "to": "ORD", "traffic": 224},
+ {"from": "MIA", "to": "BOS", "traffic": 392},
+ {"from": "MIA", "to": "DEN", "traffic": 112},
+ {"from": "MIA", "to": "DFW", "traffic": 560},
+ {"from": "MIA", "to": "DTW", "traffic": 112},
+ {"from": "MIA", "to": "EWR", "traffic": 168},
+ {"from": "MIA", "to": "IAH", "traffic": 168},
+ {"from": "MIA", "to": "JFK", "traffic": 392},
+ {"from": "MIA", "to": "MCO", "traffic": 448},
+ {"from": "MSP", "to": "DFW", "traffic": 326},
+ {"from": "MSP", "to": "MIA", "traffic": 56},
+ {"from": "ORD", "to": "BOS", "traffic": 430},
+ {"from": "ORD", "to": "DEN", "traffic": 112},
+ {"from": "ORD", "to": "DFW", "traffic": 825},
+ {"from": "ORD", "to": "LAS", "traffic": 280},
+ {"from": "ORD", "to": "LAX", "traffic": 496},
+ {"from": "ORD", "to": "MIA", "traffic": 505},
+ {"from": "ORD", "to": "MSP", "traffic": 160},
+ {"from": "ORD", "to": "PHX", "traffic": 280},
+ {"from": "ORD", "to": "SEA", "traffic": 214},
+ {"from": "ORD", "to": "SFO", "traffic": 326},
+ {"from": "PHX", "to": "DFW", "traffic": 550},
+ {"from": "PHX", "to": "MIA", "traffic": 56},
+ {"from": "SEA", "to": "JFK", "traffic": 56},
+ {"from": "SFO", "to": "DFW", "traffic": 526},
+ {"from": "SFO", "to": "JFK", "traffic": 278},
+ {"from": "SFO", "to": "MIA", "traffic": 168},
+ {"from": "SLC", "to": "DFW", "traffic": 280},
+ ]
-data = []
-max_traffic = 0
-for flight in flights:
- airport_from = airports[flight["from"]]
- airport_to = airports[flight["to"]]
- # Define data source to plot this flight
- data.append({"lat": [airport_from["lat"], airport_to["lat"]], "lon": [airport_from["lon"], airport_to["lon"]]})
- # Store the maximum traffic
- if flight["traffic"] > max_traffic:
- max_traffic = flight["traffic"]
+ data = []
+ max_traffic = 0
+ for flight in flights:
+ airport_from = airports[flight["from"]]
+ airport_to = airports[flight["to"]]
+ # Define data source to plot this flight
+ data.append({"lat": [airport_from["lat"], airport_to["lat"]], "lon": [airport_from["lon"], airport_to["lon"]]})
+ # Store the maximum traffic
+ if flight["traffic"] > max_traffic:
+ max_traffic = flight["traffic"]
-properties = {
- # Chart data
- "data": data,
- # Chart type
- "type": "scattergeo",
- # Keep lines only
- "mode": "lines",
- # Flights display as redish lines
- "line": {"width": 2, "color": "E22"},
- "layout": {
- # Focus on the USA region
- "geo": {"scope": "usa"}
- },
-}
+ properties = {
+ # Chart data
+ "data": data,
+ # Chart type
+ "type": "scattergeo",
+ # Keep lines only
+ "mode": "lines",
+ # Flights display as redish lines
+ "line": {"width": 2, "color": "E22"},
+ "layout": {
+ # Focus on the USA region
+ "geo": {"scope": "usa"}
+ },
+ }
-# Set the proper data source and opacity for each trace
-for i, flight in enumerate(flights):
- # lat[trace_index] = "[index_in_data]/lat"
- properties[f"lat[{i+1}]"] = f"{i}/lat"
- # lon[trace_index] = "[index_in_data]/lon"
- properties[f"lon[{i+1}]"] = f"{i}/lon"
- # Set flight opacity (max traffic -> max opacity)
- # Hide legend for all flights
- properties[f"options[{i+1}]"] = {"opacity": flight["traffic"] / max_traffic, "showlegend": False}
+ # Set the proper data source and opacity for each trace
+ for i, flight in enumerate(flights):
+ # lat[trace_index] = "[index_in_data]/lat"
+ properties[f"lat[{i+1}]"] = f"{i}/lat"
+ # lon[trace_index] = "[index_in_data]/lon"
+ properties[f"lon[{i+1}]"] = f"{i}/lon"
+ # Set flight opacity (max traffic -> max opacity)
+ # Hide legend for all flights
+ properties[f"options[{i+1}]"] = {"opacity": flight["traffic"] / max_traffic, "showlegend": False}
-page = """
+ page = """
# Maps - Multiple Lines
<|chart|properties={properties}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/map-simple.py b/doc/gui/examples/charts/map-simple.py
index 68815b0509..fd0815d613 100644
--- a/doc/gui/examples/charts/map-simple.py
+++ b/doc/gui/examples/charts/map-simple.py
@@ -15,39 +15,40 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-# Flight start and end locations
-data = {
- # Hartsfield-Jackson Atlanta International Airport
- # to
- # Aéroport de Paris-Charles de Gaulle
- "lat": [33.64, 49.01],
- "lon": [-84.44, 2.55],
-}
+if __name__ == "__main__":
+ # Flight start and end locations
+ data = {
+ # Hartsfield-Jackson Atlanta International Airport
+ # to
+ # Aéroport de Paris-Charles de Gaulle
+ "lat": [33.64, 49.01],
+ "lon": [-84.44, 2.55],
+ }
-layout = {
- # Chart title
- "title": "ATL to CDG",
- # Hide legend
- "showlegend": False,
- # Focus on relevant area
- "geo": {
- "resolution": 50,
- "showland": True,
- "showocean": True,
- "landcolor": "4a4",
- "oceancolor": "77d",
- "lataxis": {"range": [20, 60]},
- "lonaxis": {"range": [-100, 20]},
- },
-}
+ layout = {
+ # Chart title
+ "title": "ATL to CDG",
+ # Hide legend
+ "showlegend": False,
+ # Focus on relevant area
+ "geo": {
+ "resolution": 50,
+ "showland": True,
+ "showocean": True,
+ "landcolor": "4a4",
+ "oceancolor": "77d",
+ "lataxis": {"range": [20, 60]},
+ "lonaxis": {"range": [-100, 20]},
+ },
+ }
-# Flight displayed as a thick, red plot
-line = {"width": 5, "color": "red"}
+ # Flight displayed as a thick, red plot
+ line = {"width": 5, "color": "red"}
-page = """
+ page = """
# Maps - Simple
<|{data}|chart|type=scattergeo|mode=lines|lat=lat|lon=lon|line={line}|layout={layout}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/pie-multiple.py b/doc/gui/examples/charts/pie-multiple.py
index 2a79b2dce7..bd1b66a921 100644
--- a/doc/gui/examples/charts/pie-multiple.py
+++ b/doc/gui/examples/charts/pie-multiple.py
@@ -15,76 +15,77 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-# List of countries, used as labels in the pie charts
-countries = ["US", "China", "European Union", "Russian Federation", "Brazil", "India", "Rest of World"]
+if __name__ == "__main__":
+ # List of countries, used as labels in the pie charts
+ countries = ["US", "China", "European Union", "Russian Federation", "Brazil", "India", "Rest of World"]
-data = [
- {
- # Values for GHG Emissions
- "values": [16, 15, 12, 6, 5, 4, 42],
- "labels": countries,
- },
- {
- # Values for CO2 Emissions
- "values": [27, 11, 25, 8, 1, 3, 25],
- "labels": countries,
- },
-]
-
-options = [
- # First pie chart
- {
- # Show label value on hover
- "hoverinfo": "label",
- # Leave a hole in the middle of the chart
- "hole": 0.4,
- # Place the trace on the left side
- "domain": {"column": 0},
- },
- # Second pie chart
- {
- # Show label value on hover
- "hoverinfo": "label",
- # Leave a hole in the middle of the chart
- "hole": 0.4,
- # Place the trace on the right side
- "domain": {"column": 1},
- },
-]
+ data = [
+ {
+ # Values for GHG Emissions
+ "values": [16, 15, 12, 6, 5, 4, 42],
+ "labels": countries,
+ },
+ {
+ # Values for CO2 Emissions
+ "values": [27, 11, 25, 8, 1, 3, 25],
+ "labels": countries,
+ },
+ ]
-layout = {
- # Chart title
- "title": "Global Emissions 1990-2011",
- # Show traces in a 1x2 grid
- "grid": {"rows": 1, "columns": 2},
- "annotations": [
- # Annotation for the first trace
+ options = [
+ # First pie chart
{
- "text": "GHG",
- "font": {"size": 20},
- # Hide annotation arrow
- "showarrow": False,
- # Move to the center of the trace
- "x": 0.18,
- "y": 0.5,
+ # Show label value on hover
+ "hoverinfo": "label",
+ # Leave a hole in the middle of the chart
+ "hole": 0.4,
+ # Place the trace on the left side
+ "domain": {"column": 0},
},
- # Annotation for the second trace
+ # Second pie chart
{
- "text": "CO2",
- "font": {"size": 20},
- "showarrow": False,
- # Move to the center of the trace
- "x": 0.81,
- "y": 0.5,
+ # Show label value on hover
+ "hoverinfo": "label",
+ # Leave a hole in the middle of the chart
+ "hole": 0.4,
+ # Place the trace on the right side
+ "domain": {"column": 1},
},
- ],
- "showlegend": False,
-}
+ ]
+
+ layout = {
+ # Chart title
+ "title": "Global Emissions 1990-2011",
+ # Show traces in a 1x2 grid
+ "grid": {"rows": 1, "columns": 2},
+ "annotations": [
+ # Annotation for the first trace
+ {
+ "text": "GHG",
+ "font": {"size": 20},
+ # Hide annotation arrow
+ "showarrow": False,
+ # Move to the center of the trace
+ "x": 0.18,
+ "y": 0.5,
+ },
+ # Annotation for the second trace
+ {
+ "text": "CO2",
+ "font": {"size": 20},
+ "showarrow": False,
+ # Move to the center of the trace
+ "x": 0.81,
+ "y": 0.5,
+ },
+ ],
+ "showlegend": False,
+ }
-page = """
+ page = """
# Pie - Multiple
<|{data}|chart|type=pie|x[1]=0/values|x[2]=1/values|options={options}|layout={layout}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/pie-simple.py b/doc/gui/examples/charts/pie-simple.py
index 723a7136c8..d3dd2acb0c 100644
--- a/doc/gui/examples/charts/pie-simple.py
+++ b/doc/gui/examples/charts/pie-simple.py
@@ -15,27 +15,28 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-# Source https://www.fao.org/faostat/en/#data/SDGB
-data = {
- "Country": [
- "Rest of the world",
- "Russian Federation",
- "Brazil",
- "Canada",
- "United States of America",
- "China",
- "Australia",
- "Democratic Republic of the Congo",
- "Indonesia",
- "Peru",
- ],
- "Area": [1445674.66, 815312, 496620, 346928, 309795, 219978, 134005, 126155, 92133.2, 72330.4],
-}
+if __name__ == "__main__":
+ # Source https://www.fao.org/faostat/en/#data/SDGB
+ data = {
+ "Country": [
+ "Rest of the world",
+ "Russian Federation",
+ "Brazil",
+ "Canada",
+ "United States of America",
+ "China",
+ "Australia",
+ "Democratic Republic of the Congo",
+ "Indonesia",
+ "Peru",
+ ],
+ "Area": [1445674.66, 815312, 496620, 346928, 309795, 219978, 134005, 126155, 92133.2, 72330.4],
+ }
-page = """
+ page = """
# Pie - Simple
<|{data}|chart|type=pie|values=Area|label=Country|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/pie-styling.py b/doc/gui/examples/charts/pie-styling.py
index 1ca1b1c727..540bbfb383 100644
--- a/doc/gui/examples/charts/pie-styling.py
+++ b/doc/gui/examples/charts/pie-styling.py
@@ -15,30 +15,31 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-n_slices = 20
-# List: [1..n_slices]
-# Slices are bigger and bigger
-values = list(range(1, n_slices + 1))
+if __name__ == "__main__":
+ n_slices = 20
+ # List: [1..n_slices]
+ # Slices are bigger and bigger
+ values = list(range(1, n_slices + 1))
-marker = {
- # Colors move around the Hue color disk
- "colors": [f"hsl({360 * (i - 1)/(n_slices - 1)},90%,60%)" for i in values]
-}
+ marker = {
+ # Colors move around the Hue color disk
+ "colors": [f"hsl({360 * (i - 1)/(n_slices - 1)},90%,60%)" for i in values]
+ }
-layout = {
- # Hide the legend
- "showlegend": False
-}
+ layout = {
+ # Hide the legend
+ "showlegend": False
+ }
-options = {
- # Hide the texts
- "textinfo": "none"
-}
+ options = {
+ # Hide the texts
+ "textinfo": "none"
+ }
-page = """
+ page = """
# Pie - Style
<|{values}|chart|type=pie|marker={marker}|options={options}|layout={layout}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/polar-angular-axis.py b/doc/gui/examples/charts/polar-angular-axis.py
index 42bb2a1420..cf78bb5df8 100644
--- a/doc/gui/examples/charts/polar-angular-axis.py
+++ b/doc/gui/examples/charts/polar-angular-axis.py
@@ -15,41 +15,42 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-# Create a star shape
-data = {"r": [3, 1] * 5 + [3], "theta": list(range(0, 360, 36)) + [0]}
+if __name__ == "__main__":
+ # Create a star shape
+ data = {"r": [3, 1] * 5 + [3], "theta": list(range(0, 360, 36)) + [0]}
-options = [
- # First plot is filled with a yellow-ish color
- {"subplot": "polar", "fill": "toself", "fillcolor": "#E4FF87"},
- # Second plot is filled with a blue-ish color
- {"fill": "toself", "subplot": "polar2", "fillcolor": "#709BFF"},
-]
+ options = [
+ # First plot is filled with a yellow-ish color
+ {"subplot": "polar", "fill": "toself", "fillcolor": "#E4FF87"},
+ # Second plot is filled with a blue-ish color
+ {"fill": "toself", "subplot": "polar2", "fillcolor": "#709BFF"},
+ ]
-layout = {
- "polar": {
- # This actually is the default value
- "angularaxis": {
- "direction": "counterclockwise",
+ layout = {
+ "polar": {
+ # This actually is the default value
+ "angularaxis": {
+ "direction": "counterclockwise",
+ },
},
- },
- "polar2": {
- "angularaxis": {
- # Rotate the axis 180° (0 is on the left)
- "rotation": 180,
- # Orient the axis clockwise
- "direction": "clockwise",
- # Show the angles as radians
- "thetaunit": "radians",
+ "polar2": {
+ "angularaxis": {
+ # Rotate the axis 180° (0 is on the left)
+ "rotation": 180,
+ # Orient the axis clockwise
+ "direction": "clockwise",
+ # Show the angles as radians
+ "thetaunit": "radians",
+ },
},
- },
- # Hide the legend
- "showlegend": False,
-}
+ # Hide the legend
+ "showlegend": False,
+ }
-page = """
+ page = """
# Polar Charts - Direction
<|{data}|chart|type=scatterpolar|layout={layout}|options={options}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/polar-area.py b/doc/gui/examples/charts/polar-area.py
index 3f5d3c857d..c26dca5fe7 100644
--- a/doc/gui/examples/charts/polar-area.py
+++ b/doc/gui/examples/charts/polar-area.py
@@ -17,9 +17,6 @@
from taipy.gui import Gui
-# One data point for each degree
-theta = range(0, 360)
-
# Parametric equation that draws a shape (source Wolfram Mathworld)
def draw_heart(angle):
@@ -28,29 +25,33 @@ def draw_heart(angle):
return 2 - 2 * sa + sa * (math.sqrt(math.fabs(math.cos(a))) / (sa + 1.4))
-data = {
- # Create the heart shape
- "r": [draw_heart(angle) for angle in theta],
- "theta": theta,
-}
+if __name__ == "__main__":
+ # One data point for each degree
+ theta = range(0, 360)
+
+ data = {
+ # Create the heart shape
+ "r": [draw_heart(angle) for angle in theta],
+ "theta": theta,
+ }
-options = {"fill": "toself"}
+ options = {"fill": "toself"}
-layout = {
- # Hide the legend
- "showlegend": False,
- "polar": {
- # Hide the angular axis
- "angularaxis": {"visible": False},
- # Hide the radial axis
- "radialaxis": {"visible": False},
- },
-}
+ layout = {
+ # Hide the legend
+ "showlegend": False,
+ "polar": {
+ # Hide the angular axis
+ "angularaxis": {"visible": False},
+ # Hide the radial axis
+ "radialaxis": {"visible": False},
+ },
+ }
-page = """
+ page = """
# Polar - Area
<|{data}|chart|type=scatterpolar|mode=none|layout={layout}|options={options}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/polar-multiple.py b/doc/gui/examples/charts/polar-multiple.py
index 86975c4a8d..5e7def4640 100644
--- a/doc/gui/examples/charts/polar-multiple.py
+++ b/doc/gui/examples/charts/polar-multiple.py
@@ -17,35 +17,36 @@
from taipy.gui import Gui
-# One data point for each degree
-theta = range(0, 360)
-
# Create a rose-like shaped radius-array
def create_rose(n_petals):
return [math.cos(math.radians(n_petals * angle)) for angle in theta]
-data = {"theta": theta, "r1": create_rose(2), "r2": create_rose(3), "r3": create_rose(4)}
+if __name__ == "__main__":
+ # One data point for each degree
+ theta = range(0, 360)
+
+ data = {"theta": theta, "r1": create_rose(2), "r2": create_rose(3), "r3": create_rose(4)}
-# We want three traces in the same chart
-r = ["r1", "r2", "r3"]
+ # We want three traces in the same chart
+ r = ["r1", "r2", "r3"]
-layout = {
- # Hide the legend
- "showlegend": False,
- "polar": {
- # Hide the angular axis
- "angularaxis": {"visible": False},
- # Hide the radial axis
- "radialaxis": {"visible": False},
- },
-}
+ layout = {
+ # Hide the legend
+ "showlegend": False,
+ "polar": {
+ # Hide the angular axis
+ "angularaxis": {"visible": False},
+ # Hide the radial axis
+ "radialaxis": {"visible": False},
+ },
+ }
-page = """
+ page = """
# Polar - Multiple
<|{data}|chart|type=scatterpolar|mode=lines|r={r}|theta=theta|layout={layout}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/polar-sectors.py b/doc/gui/examples/charts/polar-sectors.py
index 82c0a7e630..5b27e02703 100644
--- a/doc/gui/examples/charts/polar-sectors.py
+++ b/doc/gui/examples/charts/polar-sectors.py
@@ -15,35 +15,36 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-# Sample small plot definition
-trace = {
- "r": [1, 2, 3, 4, 1],
- "theta": [0, 40, 80, 120, 160],
-}
+if __name__ == "__main__":
+ # Sample small plot definition
+ trace = {
+ "r": [1, 2, 3, 4, 1],
+ "theta": [0, 40, 80, 120, 160],
+ }
-# The same data is used in both traces
-data = [trace, trace]
+ # The same data is used in both traces
+ data = [trace, trace]
-# Naming the subplot is mandatory to get them both in
-# the same chart
-options = [
- {
- "subplot": "polar",
- },
- {"subplot": "polar2"},
-]
+ # Naming the subplot is mandatory to get them both in
+ # the same chart
+ options = [
+ {
+ "subplot": "polar",
+ },
+ {"subplot": "polar2"},
+ ]
-layout = {
- # Hide the legend
- "showlegend": False,
- # Restrict the angular values for second trace
- "polar2": {"sector": [30, 130]},
-}
+ layout = {
+ # Hide the legend
+ "showlegend": False,
+ # Restrict the angular values for second trace
+ "polar2": {"sector": [30, 130]},
+ }
-md = """
+ md = """
# Polar - Sectors
<|{data}|chart|type=scatterpolar|layout={layout}|options={options}|>
-"""
+ """
-Gui(md).run()
+ Gui(md).run()
diff --git a/doc/gui/examples/charts/polar-simple.py b/doc/gui/examples/charts/polar-simple.py
index ccd51d661c..cad9118af9 100644
--- a/doc/gui/examples/charts/polar-simple.py
+++ b/doc/gui/examples/charts/polar-simple.py
@@ -17,9 +17,6 @@
from taipy.gui import Gui
-# One data point for each degree
-theta = range(0, 360)
-
# Parametric equation that draws a shape (source Wolfram Mathworld)
def draw_heart(angle):
@@ -28,16 +25,20 @@ def draw_heart(angle):
return 2 - 2 * sa + sa * (math.sqrt(math.fabs(math.cos(a))) / (sa + 1.4))
-data = {
- # Create the heart shape
- "r": [draw_heart(angle) for angle in theta],
- "theta": theta,
-}
+if __name__ == "__main__":
+ # One data point for each degree
+ theta = range(0, 360)
+
+ data = {
+ # Create the heart shape
+ "r": [draw_heart(angle) for angle in theta],
+ "theta": theta,
+ }
-page = """
+ page = """
# Polar - Simple
<|{data}|chart|type=scatterpolar|mode=lines|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/polar-tick-texts.py b/doc/gui/examples/charts/polar-tick-texts.py
index cfcfd3a0c2..e02ecdf5f2 100644
--- a/doc/gui/examples/charts/polar-tick-texts.py
+++ b/doc/gui/examples/charts/polar-tick-texts.py
@@ -45,67 +45,67 @@ def generate_hand_shapes():
return [hours_hand, minutes_hand, seconds_hand]
-# Initialize the data set with the current time
-data = generate_hand_shapes()
-
-layout = {
- "polar": {
- "angularaxis": {
- "rotation": 90,
- "direction": "clockwise",
- # One tick every 30 degrees
- "tickvals": list(numpy.arange(0.0, 360.0, 30)),
- # Text value for every tick
- "ticktext": ["XII", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI"],
- },
- "radialaxis": {"angle": 90, "visible": False, "range": [0, 12]},
- },
- "showlegend": False,
-}
-
-# Options to be used for all three traces
-base_opts = {"fill": "toself"}
-# Specific for hours
-hours_opts = dict(base_opts)
-hours_opts["fillcolor"] = "#FF0000"
-# Specific for minutes
-minutes_opts = dict(base_opts)
-minutes_opts["fillcolor"] = "#00FF00"
-# Specific for seconds
-seconds_opts = dict(base_opts)
-seconds_opts["fillcolor"] = "#0000FF"
-
-# Store all the chart control properties in a single object
-properties = {
- # Don't show data point markers
- "mode": "lines",
- # Data for the hours
- "theta[1]": "0/a",
- "r[1]": "0/r",
- # Data for the minutes
- "theta[2]": "1/a",
- "r[2]": "1/r",
- # Data for the seconds
- "theta[3]": "2/a",
- "r[3]": "2/r",
- # Options for the three traces
- "options[1]": hours_opts,
- "options[2]": minutes_opts,
- "options[3]": seconds_opts,
- "line": {"color": "black"},
- "layout": layout,
-}
-
-
# Update time on every refresh
def on_navigate(state, page):
state.data = generate_hand_shapes()
return page
-page = """
+if __name__ == "__main__":
+ # Initialize the data set with the current time
+ data = generate_hand_shapes()
+
+ layout = {
+ "polar": {
+ "angularaxis": {
+ "rotation": 90,
+ "direction": "clockwise",
+ # One tick every 30 degrees
+ "tickvals": list(numpy.arange(0.0, 360.0, 30)),
+ # Text value for every tick
+ "ticktext": ["XII", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI"],
+ },
+ "radialaxis": {"angle": 90, "visible": False, "range": [0, 12]},
+ },
+ "showlegend": False,
+ }
+
+ # Options to be used for all three traces
+ base_opts = {"fill": "toself"}
+ # Specific for hours
+ hours_opts = dict(base_opts)
+ hours_opts["fillcolor"] = "#FF0000"
+ # Specific for minutes
+ minutes_opts = dict(base_opts)
+ minutes_opts["fillcolor"] = "#00FF00"
+ # Specific for seconds
+ seconds_opts = dict(base_opts)
+ seconds_opts["fillcolor"] = "#0000FF"
+
+ # Store all the chart control properties in a single object
+ properties = {
+ # Don't show data point markers
+ "mode": "lines",
+ # Data for the hours
+ "theta[1]": "0/a",
+ "r[1]": "0/r",
+ # Data for the minutes
+ "theta[2]": "1/a",
+ "r[2]": "1/r",
+ # Data for the seconds
+ "theta[3]": "2/a",
+ "r[3]": "2/r",
+ # Options for the three traces
+ "options[1]": hours_opts,
+ "options[2]": minutes_opts,
+ "options[3]": seconds_opts,
+ "line": {"color": "black"},
+ "layout": layout,
+ }
+
+ page = """
# Polar - Tick texts
<|{data}|chart|type=scatterpolar|properties={properties}|>
-"""
-Gui(page).run()
+ """
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/radar-multiple.py b/doc/gui/examples/charts/radar-multiple.py
index 1b821119e2..ce090946d8 100644
--- a/doc/gui/examples/charts/radar-multiple.py
+++ b/doc/gui/examples/charts/radar-multiple.py
@@ -17,39 +17,40 @@
from taipy.gui import Gui
-# Skill categories
-skills = ["HTML", "CSS", "Java", "Python", "PHP", "JavaScript", "Photoshop"]
-data: List[Dict[str, List]] = [
- # Proportion of skills used for Backend development
- {"Backend": [10, 10, 80, 70, 90, 30, 0], "Skills": skills},
- # Proportion of skills used for Frontend development
- {"Frontend": [90, 90, 0, 10, 20, 80, 60], "Skills": skills},
-]
-
-# Append first elements to all arrays for a nice stroke
-skills.append(skills[0])
-data[0]["Backend"].append(data[0]["Backend"][0])
-data[1]["Frontend"].append(data[1]["Frontend"][0])
-
-layout = {
- # Force the radial axis displayed range
- "polar": {"radialaxis": {"range": [0, 100]}}
-}
-
-# Fill the trace
-options = {"fill": "toself"}
-
-# Reflected in the legend
-names = ["Backend", "Frontend"]
-
-# To shorten the chart control definition
-r = ["0/Backend", "1/Frontend"]
-theta = ["0/Skills", "1/Skills"]
-
-page = """
+if __name__ == "__main__":
+ # Skill categories
+ skills = ["HTML", "CSS", "Java", "Python", "PHP", "JavaScript", "Photoshop"]
+ data: List[Dict[str, List]] = [
+ # Proportion of skills used for Backend development
+ {"Backend": [10, 10, 80, 70, 90, 30, 0], "Skills": skills},
+ # Proportion of skills used for Frontend development
+ {"Frontend": [90, 90, 0, 10, 20, 80, 60], "Skills": skills},
+ ]
+
+ # Append first elements to all arrays for a nice stroke
+ skills.append(skills[0])
+ data[0]["Backend"].append(data[0]["Backend"][0])
+ data[1]["Frontend"].append(data[1]["Frontend"][0])
+
+ layout = {
+ # Force the radial axis displayed range
+ "polar": {"radialaxis": {"range": [0, 100]}}
+ }
+
+ # Fill the trace
+ options = {"fill": "toself"}
+
+ # Reflected in the legend
+ names = ["Backend", "Frontend"]
+
+ # To shorten the chart control definition
+ r = ["0/Backend", "1/Frontend"]
+ theta = ["0/Skills", "1/Skills"]
+
+ page = """
# Radar - Multiple
<|{data}|chart|type=scatterpolar|name={names}|r={r}|theta={theta}|options={options}|layout={layout}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/radar-simple.py b/doc/gui/examples/charts/radar-simple.py
index a957719e4f..99d6065fe8 100644
--- a/doc/gui/examples/charts/radar-simple.py
+++ b/doc/gui/examples/charts/radar-simple.py
@@ -17,40 +17,41 @@
from taipy.gui import Gui
-# Source: www.statista.com (Most used programming languages in 2022)
-data: Dict[str, List] = {
- # List of programming languages
- "Language": ["JavaScript", "HTML/CSS", "SQL", "Python", "Typescript", "Java", "Bash/Shell"],
- # Percentage of usage, per language
- "%": [65.36, 55.08, 49.43, 48.07, 34.83, 33.27, 29.07],
-}
-
-# Close the shape for a nice-looking stroke
-# If the first point is *not* appended to the end of the list,
-# then the shape does not look as it is closed.
-data["%"].append(data["%"][0])
-data["Language"].append(data["Language"][0])
-
-layout = {
- "polar": {
- "radialaxis": {
- # Force the radial range to 0-100
- "range": [0, 100],
- }
- },
- # Hide legend
- "showlegend": False,
-}
-
-options = {
- # Fill the trace
- "fill": "toself"
-}
-
-md = """
+if __name__ == "__main__":
+ # Source: www.statista.com (Most used programming languages in 2022)
+ data: Dict[str, List] = {
+ # List of programming languages
+ "Language": ["JavaScript", "HTML/CSS", "SQL", "Python", "Typescript", "Java", "Bash/Shell"],
+ # Percentage of usage, per language
+ "%": [65.36, 55.08, 49.43, 48.07, 34.83, 33.27, 29.07],
+ }
+
+ # Close the shape for a nice-looking stroke
+ # If the first point is *not* appended to the end of the list,
+ # then the shape does not look as it is closed.
+ data["%"].append(data["%"][0])
+ data["Language"].append(data["Language"][0])
+
+ layout = {
+ "polar": {
+ "radialaxis": {
+ # Force the radial range to 0-100
+ "range": [0, 100],
+ }
+ },
+ # Hide legend
+ "showlegend": False,
+ }
+
+ options = {
+ # Fill the trace
+ "fill": "toself"
+ }
+
+ md = """
# Radar - Simple
<|{data}|chart|type=scatterpolar|r=%|theta=Language|options={options}|layout={layout}|>
-"""
+ """
-Gui(md).run()
+ Gui(md).run()
diff --git a/doc/gui/examples/charts/scatter-classification.py b/doc/gui/examples/charts/scatter-classification.py
index b06959b1cf..4691b22161 100644
--- a/doc/gui/examples/charts/scatter-classification.py
+++ b/doc/gui/examples/charts/scatter-classification.py
@@ -20,21 +20,26 @@
from taipy.gui import Gui
-# Let scikit-learn generate a random 2-class classification problem
-features, label = make_classification(n_samples=1000, n_features=2, n_informative=2, n_redundant=0)
+if __name__ == "__main__":
+ # Let scikit-learn generate a random 2-class classification problem
+ features, label = make_classification(n_samples=1000, n_features=2, n_informative=2, n_redundant=0)
-random_data = pandas.DataFrame({"x": features[:, 0], "y": features[:, 1], "label": label})
+ random_data = pandas.DataFrame({"x": features[:, 0], "y": features[:, 1], "label": label})
-data_x = random_data["x"]
-class_A = [random_data.loc[i, "y"] if random_data.loc[i, "label"] == 0 else numpy.nan for i in range(len(random_data))]
-class_B = [random_data.loc[i, "y"] if random_data.loc[i, "label"] == 1 else numpy.nan for i in range(len(random_data))]
+ data_x = random_data["x"]
+ class_A = [
+ random_data.loc[i, "y"] if random_data.loc[i, "label"] == 0 else numpy.nan for i in range(len(random_data))
+ ]
+ class_B = [
+ random_data.loc[i, "y"] if random_data.loc[i, "label"] == 1 else numpy.nan for i in range(len(random_data))
+ ]
-data = {"x": random_data["x"], "Class A": class_A, "Class B": class_B}
+ data = {"x": random_data["x"], "Class A": class_A, "Class B": class_B}
-page = """
+ page = """
# Scatter - Classification
<|{data}|chart|mode=markers|x=x|y[1]=Class A|y[2]=Class B|width=60%|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/scatter-more-styling.py b/doc/gui/examples/charts/scatter-more-styling.py
index ee22c2765d..1da988f652 100644
--- a/doc/gui/examples/charts/scatter-more-styling.py
+++ b/doc/gui/examples/charts/scatter-more-styling.py
@@ -15,62 +15,63 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-data = [
- {
- "x": [1, 2, 3, 4],
- "y": [10, 11, 12, 13],
- },
- {
- "x": [1, 2, 3, 4],
- "y": [11, 12, 13, 14],
- },
- {
- "x": [1, 2, 3, 4],
- "y": [12, 13, 14, 15],
- },
-]
+if __name__ == "__main__":
+ data = [
+ {
+ "x": [1, 2, 3, 4],
+ "y": [10, 11, 12, 13],
+ },
+ {
+ "x": [1, 2, 3, 4],
+ "y": [11, 12, 13, 14],
+ },
+ {
+ "x": [1, 2, 3, 4],
+ "y": [12, 13, 14, 15],
+ },
+ ]
-options = [
- # First data set is represented by increasingly large
- # disks, getting more and more opaque
- {"marker": {"color": "red", "size": [12, 22, 32, 42], "opacity": [0.2, 0.5, 0.7, 1]}},
- # Second data set is represented with a different symbol
- # for each data point
- {
- "marker": {"color": "blue", "size": 18, "symbol": ["circle", "square", "diamond", "cross"]},
- },
- # Third data set is represented with green disks surrounded
- # by a red circle that becomes thicker and thicker
- {
- "marker": {"color": "green", "size": 20, "line": {"color": "red", "width": [2, 4, 6, 8]}},
- },
-]
+ options = [
+ # First data set is represented by increasingly large
+ # disks, getting more and more opaque
+ {"marker": {"color": "red", "size": [12, 22, 32, 42], "opacity": [0.2, 0.5, 0.7, 1]}},
+ # Second data set is represented with a different symbol
+ # for each data point
+ {
+ "marker": {"color": "blue", "size": 18, "symbol": ["circle", "square", "diamond", "cross"]},
+ },
+ # Third data set is represented with green disks surrounded
+ # by a red circle that becomes thicker and thicker
+ {
+ "marker": {"color": "green", "size": 20, "line": {"color": "red", "width": [2, 4, 6, 8]}},
+ },
+ ]
-markers = [
- # First data set is represented by increasingly large
- # disks, getting more and more opaque
- {"color": "red", "size": [12, 22, 32, 42], "opacity": [0.2, 0.5, 0.7, 1]},
- # Second data set is represented with a different symbol
- # for each data point
- {"color": "blue", "size": 18, "symbol": ["circle", "square", "diamond", "cross"]},
- # Third data set is represented with green disks surrounded
- # by a red circle that becomes thicker and thicker
- {"color": "green", "size": 20, "line": {"color": "red", "width": [2, 4, 6, 8]}},
-]
+ markers = [
+ # First data set is represented by increasingly large
+ # disks, getting more and more opaque
+ {"color": "red", "size": [12, 22, 32, 42], "opacity": [0.2, 0.5, 0.7, 1]},
+ # Second data set is represented with a different symbol
+ # for each data point
+ {"color": "blue", "size": 18, "symbol": ["circle", "square", "diamond", "cross"]},
+ # Third data set is represented with green disks surrounded
+ # by a red circle that becomes thicker and thicker
+ {"color": "green", "size": 20, "line": {"color": "red", "width": [2, 4, 6, 8]}},
+ ]
-layout = {
- # Hide the chart legend
- "showlegend": False,
- # Remove all ticks from the x axis
- "xaxis": {"showticklabels": False},
- # Remove all ticks from the y axis
- "yaxis": {"showticklabels": False},
-}
+ layout = {
+ # Hide the chart legend
+ "showlegend": False,
+ # Remove all ticks from the x axis
+ "xaxis": {"showticklabels": False},
+ # Remove all ticks from the y axis
+ "yaxis": {"showticklabels": False},
+ }
-page = """
+ page = """
## Scatter - Customize markers
<|{data}|chart|mode=markers|layout={layout}|marker={markers}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/scatter-regression.py b/doc/gui/examples/charts/scatter-regression.py
index bea97a078b..1719463d7a 100644
--- a/doc/gui/examples/charts/scatter-regression.py
+++ b/doc/gui/examples/charts/scatter-regression.py
@@ -20,22 +20,23 @@
from taipy.gui import Gui
-# Let scikit-learn generate a random regression problem
-n_samples = 300
-X, y, coef = make_regression(n_samples=n_samples, n_features=1, n_informative=1, n_targets=1, noise=25, coef=True)
+if __name__ == "__main__":
+ # Let scikit-learn generate a random regression problem
+ n_samples = 300
+ X, y, coef = make_regression(n_samples=n_samples, n_features=1, n_informative=1, n_targets=1, noise=25, coef=True)
-model = LinearRegression().fit(X, y)
+ model = LinearRegression().fit(X, y)
-x_data = X.flatten()
-y_data = y.flatten()
-predict = model.predict(X)
+ x_data = X.flatten()
+ y_data = y.flatten()
+ predict = model.predict(X)
-data = {"x": x_data, "y": y_data, "Regression": predict}
+ data = {"x": x_data, "y": y_data, "Regression": predict}
-page = """
+ page = """
# Scatter - Regression
<|{data}|chart|x=x|y[1]=y|mode[1]=markers|y[2]=Regression|mode[2]=line|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/scatter-styling.py b/doc/gui/examples/charts/scatter-styling.py
index 7a67a34566..5c0d7575c5 100644
--- a/doc/gui/examples/charts/scatter-styling.py
+++ b/doc/gui/examples/charts/scatter-styling.py
@@ -20,23 +20,24 @@
from taipy.gui import Gui
-# Let scikit-learn generate a random 2-class classification problem
-n_samples = 100
-features, label = make_classification(n_samples=n_samples, n_features=2, n_informative=2, n_redundant=0)
+if __name__ == "__main__":
+ # Let scikit-learn generate a random 2-class classification problem
+ n_samples = 100
+ features, label = make_classification(n_samples=n_samples, n_features=2, n_informative=2, n_redundant=0)
-random_data = pd.DataFrame({"x": features[:, 0], "y": features[:, 1], "label": label})
+ random_data = pd.DataFrame({"x": features[:, 0], "y": features[:, 1], "label": label})
-data_x = random_data["x"]
-class_A = [random_data.loc[i, "y"] if random_data.loc[i, "label"] == 0 else np.nan for i in range(n_samples)]
-class_B = [random_data.loc[i, "y"] if random_data.loc[i, "label"] == 1 else np.nan for i in range(n_samples)]
+ data_x = random_data["x"]
+ class_A = [random_data.loc[i, "y"] if random_data.loc[i, "label"] == 0 else np.nan for i in range(n_samples)]
+ class_B = [random_data.loc[i, "y"] if random_data.loc[i, "label"] == 1 else np.nan for i in range(n_samples)]
-data = {"x": random_data["x"], "Class A": class_A, "Class B": class_B}
-marker_A = {"symbol": "circle-open", "size": 16}
-marker_B = {"symbol": "triangle-up-dot", "size": 20, "opacity": 0.7}
-page = """
+ data = {"x": random_data["x"], "Class A": class_A, "Class B": class_B}
+ marker_A = {"symbol": "circle-open", "size": 16}
+ marker_B = {"symbol": "triangle-up-dot", "size": 20, "opacity": 0.7}
+ page = """
# Scatter - Styling
<|{data}|chart|mode=markers|x=x|y[1]=Class A|y[2]=Class B|width=60%|marker[1]={marker_A}|marker[2]={marker_B}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/treemap-hierarchical-values.py b/doc/gui/examples/charts/treemap-hierarchical-values.py
index 10dad8c42e..6a10876928 100644
--- a/doc/gui/examples/charts/treemap-hierarchical-values.py
+++ b/doc/gui/examples/charts/treemap-hierarchical-values.py
@@ -15,68 +15,69 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-# Major countries and their surface (in km2), for every continent
-# Source: https://en.wikipedia.org/wiki/List_of_countries_and_dependencies_by_area
-continents = {
- "Africa": [
- {"name": "Algeria", "surface": 2381741},
- {"name": "Dem. Rep. Congo", "surface": 2344858},
- {"name": "Sudan", "surface": 1886068},
- {"name": "Libya", "surface": 1759540},
- {"name": "Chad", "surface": 1284000},
- ],
- "Asia": [
- {"name": "Russia-Asia", "surface": 17098246},
- {"name": "China", "surface": 9596961},
- {"name": "India", "surface": 3287263},
- {"name": "Kazakhstan", "surface": 2724900},
- {"name": "Saudi Arabia", "surface": 2149690},
- ],
- "Europe": [
- {"name": "Russia-Eur", "surface": 3972400},
- {"name": "Ukraine", "surface": 603628},
- {"name": "France", "surface": 551695},
- {"name": "Spain", "surface": 498980},
- {"name": "Sweden", "surface": 450295},
- ],
- "Americas": [
- {"name": "Canada", "surface": 9984670},
- {"name": "U.S.A.", "surface": 9833517},
- {"name": "Brazil", "surface": 8515767},
- {"name": "Argentina", "surface": 2780400},
- {"name": "Mexico", "surface": 1964375},
- ],
- "Oceania": [
- {"name": "Australia", "surface": 7692024},
- {"name": "Papua New Guinea", "surface": 462840},
- {"name": "New Zealand", "surface": 270467},
- {"name": "Solomon Islands", "surface": 28896},
- {"name": "Fiji", "surface": 18274},
- ],
- "Antarctica": [{"name": "Whole", "surface": 14200000}],
-}
+if __name__ == "__main__":
+ # Major countries and their surface (in km2), for every continent
+ # Source: https://en.wikipedia.org/wiki/List_of_countries_and_dependencies_by_area
+ continents = {
+ "Africa": [
+ {"name": "Algeria", "surface": 2381741},
+ {"name": "Dem. Rep. Congo", "surface": 2344858},
+ {"name": "Sudan", "surface": 1886068},
+ {"name": "Libya", "surface": 1759540},
+ {"name": "Chad", "surface": 1284000},
+ ],
+ "Asia": [
+ {"name": "Russia-Asia", "surface": 17098246},
+ {"name": "China", "surface": 9596961},
+ {"name": "India", "surface": 3287263},
+ {"name": "Kazakhstan", "surface": 2724900},
+ {"name": "Saudi Arabia", "surface": 2149690},
+ ],
+ "Europe": [
+ {"name": "Russia-Eur", "surface": 3972400},
+ {"name": "Ukraine", "surface": 603628},
+ {"name": "France", "surface": 551695},
+ {"name": "Spain", "surface": 498980},
+ {"name": "Sweden", "surface": 450295},
+ ],
+ "Americas": [
+ {"name": "Canada", "surface": 9984670},
+ {"name": "U.S.A.", "surface": 9833517},
+ {"name": "Brazil", "surface": 8515767},
+ {"name": "Argentina", "surface": 2780400},
+ {"name": "Mexico", "surface": 1964375},
+ ],
+ "Oceania": [
+ {"name": "Australia", "surface": 7692024},
+ {"name": "Papua New Guinea", "surface": 462840},
+ {"name": "New Zealand", "surface": 270467},
+ {"name": "Solomon Islands", "surface": 28896},
+ {"name": "Fiji", "surface": 18274},
+ ],
+ "Antarctica": [{"name": "Whole", "surface": 14200000}],
+ }
-name: list = []
-surface: list = []
-continent: list = []
+ name: list = []
+ surface: list = []
+ continent: list = []
-for continent_name, countries in continents.items():
- # Create continent in root rectangle
- name.append(continent_name)
- surface.append(0)
- continent.append("")
- # Create countries in that continent rectangle
- for country in countries:
- name.append(country["name"])
- surface.append(country["surface"])
- continent.append(continent_name)
+ for continent_name, countries in continents.items():
+ # Create continent in root rectangle
+ name.append(continent_name)
+ surface.append(0)
+ continent.append("")
+ # Create countries in that continent rectangle
+ for country in countries:
+ name.append(country["name"])
+ surface.append(country["surface"])
+ continent.append(continent_name)
-data = {"names": name, "surfaces": surface, "continent": continent}
+ data = {"names": name, "surfaces": surface, "continent": continent}
-page = """
+ page = """
# TreeMap - Hierarchical values
<|{data}|chart|type=treemap|labels=names|values=surfaces|parents=continent|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/treemap-hierarchical.py b/doc/gui/examples/charts/treemap-hierarchical.py
index 5e0dc01140..610c9049ef 100644
--- a/doc/gui/examples/charts/treemap-hierarchical.py
+++ b/doc/gui/examples/charts/treemap-hierarchical.py
@@ -15,61 +15,62 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-# Partial family tree of the British House of Windsor
-# Source: https://en.wikipedia.org/wiki/Family_tree_of_the_British_royal_family
-tree = {
- "name": [
- "Queen Victoria",
- "Princess Victoria",
- "Edward VII",
- "Alice",
- "Alfred",
- "Wilhelm II",
- "Albert Victor",
- "George V",
- "Louise",
- "Ernest Louis",
- "Alfred (2)",
- "Marie",
- "Victoria Melita",
- "Edward VIII",
- "George VI",
- "Mary",
- "Elizabeth II",
- "Margaret",
- "Charles III",
- "Anne",
- "Andrew",
- ],
- "parent": [
- "",
- "Queen Victoria",
- "Queen Victoria",
- "Queen Victoria",
- "Queen Victoria",
- "Princess Victoria",
- "Edward VII",
- "Edward VII",
- "Edward VII",
- "Alice",
- "Alfred",
- "Alfred",
- "Alfred",
- "George V",
- "George V",
- "George V",
- "George VI",
- "George VI",
- "Elizabeth II",
- "Elizabeth II",
- "Elizabeth II",
- ],
-}
+if __name__ == "__main__":
+ # Partial family tree of the British House of Windsor
+ # Source: https://en.wikipedia.org/wiki/Family_tree_of_the_British_royal_family
+ tree = {
+ "name": [
+ "Queen Victoria",
+ "Princess Victoria",
+ "Edward VII",
+ "Alice",
+ "Alfred",
+ "Wilhelm II",
+ "Albert Victor",
+ "George V",
+ "Louise",
+ "Ernest Louis",
+ "Alfred (2)",
+ "Marie",
+ "Victoria Melita",
+ "Edward VIII",
+ "George VI",
+ "Mary",
+ "Elizabeth II",
+ "Margaret",
+ "Charles III",
+ "Anne",
+ "Andrew",
+ ],
+ "parent": [
+ "",
+ "Queen Victoria",
+ "Queen Victoria",
+ "Queen Victoria",
+ "Queen Victoria",
+ "Princess Victoria",
+ "Edward VII",
+ "Edward VII",
+ "Edward VII",
+ "Alice",
+ "Alfred",
+ "Alfred",
+ "Alfred",
+ "George V",
+ "George V",
+ "George V",
+ "George VI",
+ "George VI",
+ "Elizabeth II",
+ "Elizabeth II",
+ "Elizabeth II",
+ ],
+ }
-page = """
+ page = """
# TreeMap - Hierarchical
<|{tree}|chart|type=treemap|labels=name|parents=parent|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/treemap-simple.py b/doc/gui/examples/charts/treemap-simple.py
index a1df4a22af..72951c453e 100644
--- a/doc/gui/examples/charts/treemap-simple.py
+++ b/doc/gui/examples/charts/treemap-simple.py
@@ -15,18 +15,19 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-# Data set: the first 10 elements of the Fibonacci sequence
-n_numbers = 10
-fibonacci = [0, 1]
-for i in range(2, n_numbers):
- fibonacci.append(fibonacci[i - 1] + fibonacci[i - 2])
+if __name__ == "__main__":
+ # Data set: the first 10 elements of the Fibonacci sequence
+ n_numbers = 10
+ fibonacci = [0, 1]
+ for i in range(2, n_numbers):
+ fibonacci.append(fibonacci[i - 1] + fibonacci[i - 2])
-data = {"index": list(range(1, n_numbers + 1)), "fibonacci": fibonacci}
+ data = {"index": list(range(1, n_numbers + 1)), "fibonacci": fibonacci}
-page = """
+ page = """
# TreeMap - Simple
<|{data}|chart|type=treemap|labels=index|values=fibonacci|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/waterfall-period_levels.py b/doc/gui/examples/charts/waterfall-period_levels.py
index eb20a18cc6..b822577bfe 100644
--- a/doc/gui/examples/charts/waterfall-period_levels.py
+++ b/doc/gui/examples/charts/waterfall-period_levels.py
@@ -15,22 +15,23 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-# Data set
-data = [
- {
- # The quarterly periods are grouped by year
- "Period": [["Carry", "Q1", "Q2", "Q3", "Q4", "Current"], ["N-1", "N", "N", "N", "N", "N+1"]]
- },
- {
- "Cash Flow": [25, -17, 12, 18, -8, None],
- "Measure": ["absolute", "relative", "relative", "relative", "relative", "total"],
- },
-]
+if __name__ == "__main__":
+ # Data set
+ data = [
+ {
+ # The quarterly periods are grouped by year
+ "Period": [["Carry", "Q1", "Q2", "Q3", "Q4", "Current"], ["N-1", "N", "N", "N", "N", "N+1"]]
+ },
+ {
+ "Cash Flow": [25, -17, 12, 18, -8, None],
+ "Measure": ["absolute", "relative", "relative", "relative", "relative", "total"],
+ },
+ ]
-page = """
+ page = """
# Waterfall - Period levels
<|{data}|chart|type=waterfall|x=0/Period|y=1/Cash Flow|measure=1/Measure|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/waterfall-simple.py b/doc/gui/examples/charts/waterfall-simple.py
index ecf61eefd6..07d4a47842 100644
--- a/doc/gui/examples/charts/waterfall-simple.py
+++ b/doc/gui/examples/charts/waterfall-simple.py
@@ -15,17 +15,18 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-# Data set
-data = {
- "Day": ["Mon", "Tue", "Wed", "Thu", "Fri"],
- "Values": [10, -5, 20, -10, 30],
- "Measure": ["absolute", "relative", "relative", "relative", "relative"],
-}
+if __name__ == "__main__":
+ # Data set
+ data = {
+ "Day": ["Mon", "Tue", "Wed", "Thu", "Fri"],
+ "Values": [10, -5, 20, -10, 30],
+ "Measure": ["absolute", "relative", "relative", "relative", "relative"],
+ }
-page = """
+ page = """
# Waterfall - Simple
<|{data}|chart|type=waterfall|x=Day|y=Values|measure=Measure|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/charts/waterfall-styling.py b/doc/gui/examples/charts/waterfall-styling.py
index 44b939a0fb..2b8b391169 100644
--- a/doc/gui/examples/charts/waterfall-styling.py
+++ b/doc/gui/examples/charts/waterfall-styling.py
@@ -15,32 +15,33 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-# 9-hole course
-n_holes = 9
+if __name__ == "__main__":
+ # 9-hole course
+ n_holes = 9
-# Data set
-# Each entry holds an array of values. One for each hole, plus one for th
-data = {
- # ["Hole1", "Hole2", ..., "Hole9"]
- "Hole": [f"Hole{h}" for h in range(1, n_holes + 1)] + ["Score"],
- # Par for each hole
- "Par": [3, 4, 4, 5, 3, 5, 4, 5, 3] + [None], # type: ignore
- # Score for each hole
- "Score": [4, 4, 5, 4, 4, 5, 4, 5, 4] + [None], # type: ignore
- # Represented as relative values except for the last one
- "M": n_holes * ["relative"] + ["total"],
-}
+ # Data set
+ # Each entry holds an array of values. One for each hole, plus one for th
+ data = {
+ # ["Hole1", "Hole2", ..., "Hole9"]
+ "Hole": [f"Hole{h}" for h in range(1, n_holes + 1)] + ["Score"],
+ # Par for each hole
+ "Par": [3, 4, 4, 5, 3, 5, 4, 5, 3] + [None], # type: ignore
+ # Score for each hole
+ "Score": [4, 4, 5, 4, 4, 5, 4, 5, 4] + [None], # type: ignore
+ # Represented as relative values except for the last one
+ "M": n_holes * ["relative"] + ["total"],
+ }
-# Compute difference (Score-Par)
-data["Diff"] = [data["Score"][i] - data["Par"][i] for i in range(0, n_holes)] + [None] # type: ignore[index]
+ # Compute difference (Score-Par)
+ data["Diff"] = [data["Score"][i] - data["Par"][i] for i in range(0, n_holes)] + [None] # type: ignore[index]
-# Show positive values in red, and negative values in green
-options = {"decreasing": {"marker": {"color": "green"}}, "increasing": {"marker": {"color": "red"}}}
+ # Show positive values in red, and negative values in green
+ options = {"decreasing": {"marker": {"color": "green"}}, "increasing": {"marker": {"color": "red"}}}
-page = """
+ page = """
# Waterfall - Styling
<|{data}|chart|type=waterfall|x=Hole|y=Diff|measure=M|options={options}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/controls/date-min-max.py b/doc/gui/examples/controls/date-min-max.py
index afaa47b763..4f53ea65ce 100644
--- a/doc/gui/examples/controls/date-min-max.py
+++ b/doc/gui/examples/controls/date-min-max.py
@@ -17,12 +17,13 @@
from taipy.gui import Gui
-date = datetime.date(2024, 6, 15)
-start = datetime.date(2024, 5, 15)
-end = datetime.date(2024, 7, 15)
+if __name__ == "__main__":
+ date = datetime.date(2024, 6, 15)
+ start = datetime.date(2024, 5, 15)
+ end = datetime.date(2024, 7, 15)
-page = """
+ page = """
<|{date}|date|min={start}|max={end}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/controls/file_download-dynamic-temp-file.py b/doc/gui/examples/controls/file_download-dynamic-temp-file.py
index a677988173..1cd43dd5d7 100644
--- a/doc/gui/examples/controls/file_download-dynamic-temp-file.py
+++ b/doc/gui/examples/controls/file_download-dynamic-temp-file.py
@@ -19,11 +19,6 @@
from taipy.gui import Gui, download
-# Initial precision
-precision = 10
-# Stores the path to the temporary file
-temp_path = None
-
def pi(precision: int) -> list[int]:
"""Compute Pi to the required precision.
@@ -66,7 +61,13 @@ def download_pi(state):
download(state, content=temp_file.name, name="pi.csv", on_action=clean_up)
-page = """
+if __name__ == "__main__":
+ # Initial precision
+ precision = 10
+ # Stores the path to the temporary file
+ temp_path = None
+
+ page = """
# File Download - Dynamic content
Precision:
@@ -74,6 +75,6 @@ def download_pi(state):
<|{precision}|slider|min=2|max=10000|>
<|{None}|file_download|on_action=download_pi|label=Download Pi digits|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/controls/file_download-dynamic.py b/doc/gui/examples/controls/file_download-dynamic.py
index 3b65c56cba..1ed9fda055 100644
--- a/doc/gui/examples/controls/file_download-dynamic.py
+++ b/doc/gui/examples/controls/file_download-dynamic.py
@@ -18,9 +18,6 @@
from taipy.gui import Gui, download
-# Initial precision
-precision = 10
-
def pi(precision: int) -> list[int]:
"""Compute Pi to the required precision.
@@ -57,7 +54,11 @@ def download_pi(state):
download(state, content=bytes(buffer.getvalue(), "UTF-8"), name="pi.csv")
-page = """
+if __name__ == "__main__":
+ # Initial precision
+ precision = 10
+
+ page = """
# File Download - Dynamic content
Precision:
@@ -65,6 +66,6 @@ def download_pi(state):
<|{precision}|slider|min=2|max=10000|>
<|{None}|file_download|on_action=download_pi|label=Download Pi digits|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/controls/metric-color-map.py b/doc/gui/examples/controls/metric-color-map.py
index 2735bbcc05..d3d7f1a9b0 100644
--- a/doc/gui/examples/controls/metric-color-map.py
+++ b/doc/gui/examples/controls/metric-color-map.py
@@ -15,23 +15,24 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-# Color wavelength
-color_wl = 530
-# Color ranges by wavelength
-color_map = {
- 200: None,
- 380: "violet",
- 435: "blue",
- 500: "cyan",
- 520: "green",
- 565: "yellow",
- 590: "orange",
- 625: "red",
- 740: None,
-}
+if __name__ == "__main__":
+ # Color wavelength
+ color_wl = 530
+ # Color ranges by wavelength
+ color_map = {
+ 200: None,
+ 380: "violet",
+ 435: "blue",
+ 500: "cyan",
+ 520: "green",
+ 565: "yellow",
+ 590: "orange",
+ 625: "red",
+ 740: None,
+ }
-page = """
+ page = """
<|{color_wl}|metric|color_map={color_map}|format=%d nm|min=200|max=800|bar_color=gray|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/controls/metric-formats.py b/doc/gui/examples/controls/metric-formats.py
index cbf962cc6b..2de4d23aa7 100644
--- a/doc/gui/examples/controls/metric-formats.py
+++ b/doc/gui/examples/controls/metric-formats.py
@@ -15,12 +15,12 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-speed = 60
-variation = 15
+if __name__ == "__main__":
+ speed = 60
+ variation = 15
-page = """
+ page = """
<|{speed}|metric|format=%d km/h|delta={variation}|delta_format=%d %%|>
-"""
+ """
-
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/controls/metric-hide-value.py b/doc/gui/examples/controls/metric-hide-value.py
index 1d3492ba0b..1f28031484 100644
--- a/doc/gui/examples/controls/metric-hide-value.py
+++ b/doc/gui/examples/controls/metric-hide-value.py
@@ -15,9 +15,9 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-page = """
+if __name__ == "__main__":
+ page = """
<|90|metric|don't show_value|>
-"""
+ """
-
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/controls/metric-layout.py b/doc/gui/examples/controls/metric-layout.py
index 09451a8dd0..2003694205 100644
--- a/doc/gui/examples/controls/metric-layout.py
+++ b/doc/gui/examples/controls/metric-layout.py
@@ -15,20 +15,21 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-value = 45
-# The layout object reference can be found in Plotly's documentation:
-# https://plotly.com/python/reference/layout/
-layout = {
- "paper_bgcolor": "lightblue",
- "font": {
- "size": 30,
- "color": "blue",
- "family": "Arial",
- },
-}
+if __name__ == "__main__":
+ value = 45
+ # The layout object reference can be found in Plotly's documentation:
+ # https://plotly.com/python/reference/layout/
+ layout = {
+ "paper_bgcolor": "lightblue",
+ "font": {
+ "size": 30,
+ "color": "blue",
+ "family": "Arial",
+ },
+ }
-page = """
+ page = """
<|{value}|metric|layout={layout}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/controls/metric-range.py b/doc/gui/examples/controls/metric-range.py
index 6e862c0b53..3c0acb5226 100644
--- a/doc/gui/examples/controls/metric-range.py
+++ b/doc/gui/examples/controls/metric-range.py
@@ -15,11 +15,11 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-value = 120
+if __name__ == "__main__":
+ value = 120
-page = """
+ page = """
<|{value}|metric|min=50|max=150|>
-"""
+ """
-
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/controls/metric-simple.py b/doc/gui/examples/controls/metric-simple.py
index ed4793a1fb..fda16c1bf3 100644
--- a/doc/gui/examples/controls/metric-simple.py
+++ b/doc/gui/examples/controls/metric-simple.py
@@ -15,12 +15,13 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-value = 72
-delta = 15
-threshold = 60
+if __name__ == "__main__":
+ value = 72
+ delta = 15
+ threshold = 60
-page = """
+ page = """
<|{value}|metric|delta={delta}|threshold={threshold}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/controls/metric-type.py b/doc/gui/examples/controls/metric-type.py
index a32ee53a95..80370b9d61 100644
--- a/doc/gui/examples/controls/metric-type.py
+++ b/doc/gui/examples/controls/metric-type.py
@@ -15,12 +15,13 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-value = 72
-delta = 15
-threshold = 60
+if __name__ == "__main__":
+ value = 72
+ delta = 15
+ threshold = 60
-page = """
+ page = """
<|{value}|metric|threshold={threshold}|type=linear|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/controls/number-min-max.py b/doc/gui/examples/controls/number-min-max.py
index 3544319a7a..f5d325d34e 100644
--- a/doc/gui/examples/controls/number-min-max.py
+++ b/doc/gui/examples/controls/number-min-max.py
@@ -15,10 +15,11 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-value = 50
+if __name__ == "__main__":
+ value = 50
-page = """
+ page = """
<|{value}|number|min=10|max=60|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/controls/number-step.py b/doc/gui/examples/controls/number-step.py
index 39a05552ea..653e33721d 100644
--- a/doc/gui/examples/controls/number-step.py
+++ b/doc/gui/examples/controls/number-step.py
@@ -15,10 +15,11 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-value = 50
+if __name__ == "__main__":
+ value = 50
-page = """
+ page = """
<|{value}|number|step=2|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/controls/slider-date-range.py b/doc/gui/examples/controls/slider-date-range.py
index 68bb86df2a..17fb5c2dd8 100644
--- a/doc/gui/examples/controls/slider-date-range.py
+++ b/doc/gui/examples/controls/slider-date-range.py
@@ -17,24 +17,6 @@
from taipy.gui import Gui
-# Create the list of dates (all year 2000)
-all_dates = {}
-all_dates_str = []
-start_date = date(2000, 1, 1)
-end_date = date(2001, 1, 1)
-a_date = start_date
-while a_date < end_date:
- date_str = a_date.strftime("%Y/%m/%d")
- all_dates_str.append(date_str)
- all_dates[date_str] = a_date
- a_date += timedelta(days=1)
-
-# Initial selection: first and last day
-dates = [all_dates_str[1], all_dates_str[-1]]
-# These two variables are used in text controls
-start_sel = all_dates[dates[0]]
-end_sel = all_dates[dates[1]]
-
def on_change(state, _, var_value):
# Update the text controls
@@ -42,7 +24,26 @@ def on_change(state, _, var_value):
state.end_sel = all_dates[var_value[1]]
-page = """
+if __name__ == "__main__":
+ # Create the list of dates (all year 2000)
+ all_dates = {}
+ all_dates_str = []
+ start_date = date(2000, 1, 1)
+ end_date = date(2001, 1, 1)
+ a_date = start_date
+ while a_date < end_date:
+ date_str = a_date.strftime("%Y/%m/%d")
+ all_dates_str.append(date_str)
+ all_dates[date_str] = a_date
+ a_date += timedelta(days=1)
+
+ # Initial selection: first and last day
+ dates = [all_dates_str[1], all_dates_str[-1]]
+ # These two variables are used in text controls
+ start_sel = all_dates[dates[0]]
+ end_sel = all_dates[dates[1]]
+
+ page = """
# Slider - Date range
<|{dates}|slider|lov={all_dates_str}|>
@@ -50,6 +51,6 @@ def on_change(state, _, var_value):
Start: <|{start_sel}|text|format=d MMM|>
End: <|{end_sel}|text|format=d MMM|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/controls/slider-lov.py b/doc/gui/examples/controls/slider-lov.py
index ff173ecf50..72f7861792 100644
--- a/doc/gui/examples/controls/slider-lov.py
+++ b/doc/gui/examples/controls/slider-lov.py
@@ -15,12 +15,13 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-value = "XS"
+if __name__ == "__main__":
+ value = "XS"
-page = """
+ page = """
# Slider - List of values
<|{value}|slider|lov=XXS;XS;S;M;L;XL;XXL|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/controls/slider-multiple.py b/doc/gui/examples/controls/slider-multiple.py
index 0047f605d4..760149d4b5 100644
--- a/doc/gui/examples/controls/slider-multiple.py
+++ b/doc/gui/examples/controls/slider-multiple.py
@@ -15,15 +15,16 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-# Initial values
-values = [20, 40, 80]
+if __name__ == "__main__":
+ # Initial values
+ values = [20, 40, 80]
-page = """
+ page = """
# Slider - Range
<|{values}|slider|>
Selection: <|{values}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/controls/slider-orientation.py b/doc/gui/examples/controls/slider-orientation.py
index 374f671a99..6bf0cf4a40 100644
--- a/doc/gui/examples/controls/slider-orientation.py
+++ b/doc/gui/examples/controls/slider-orientation.py
@@ -15,14 +15,15 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-value = 40
+if __name__ == "__main__":
+ value = 40
-page = """
+ page = """
# Slider - Vertical
<|{value}|slider|orientation=v|>
Value: <|{value}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/controls/slider-range.py b/doc/gui/examples/controls/slider-range.py
index d96d19a961..525b93347c 100644
--- a/doc/gui/examples/controls/slider-range.py
+++ b/doc/gui/examples/controls/slider-range.py
@@ -15,14 +15,15 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-value = 9
+if __name__ == "__main__":
+ value = 9
-page = """
+ page = """
# Slider - Custom range
<|{value}|slider|min=1|max=10|>
Value: <|{value}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/examples/controls/slider-simple.py b/doc/gui/examples/controls/slider-simple.py
index dca20a466c..a1176c9ee9 100644
--- a/doc/gui/examples/controls/slider-simple.py
+++ b/doc/gui/examples/controls/slider-simple.py
@@ -15,14 +15,15 @@
# -----------------------------------------------------------------------------------------
from taipy.gui import Gui
-value = 50
+if __name__ == "__main__":
+ value = 50
-page = """
+ page = """
# Slider - Simple
<|{value}|slider|>
Value: <|{value}|>
-"""
+ """
-Gui(page).run()
+ Gui(page).run()
diff --git a/doc/gui/extension/main.py b/doc/gui/extension/main.py
index 9dd05bc407..dca97ede58 100644
--- a/doc/gui/extension/main.py
+++ b/doc/gui/extension/main.py
@@ -16,10 +16,22 @@
from taipy.gui import Gui
-# Initial value
-label = "Here is some text"
-page = """
+def on_action(state, id):
+ if id == "addChar":
+ # Add a random character to the end of 'label'
+ state.label += random.choice(string.ascii_letters)
+ elif id == "removeChar":
+ # Remove the first character of 'label'
+ if len(state.label) > 0:
+ state.label = state.label[1:]
+
+
+if __name__ == "__main__":
+ # Initial value
+ label = "Here is some text"
+
+ page = """
# Custom elements example
## Fraction:
@@ -36,17 +48,6 @@
<|Add a character|button|id=addChar|>
<|Remove a character|button|id=removeChar|>
-"""
-
-
-def on_action(state, id):
- if id == "addChar":
- # Add a random character to the end of 'label'
- state.label += random.choice(string.ascii_letters)
- elif id == "removeChar":
- # Remove the first character of 'label'
- if len(state.label) > 0:
- state.label = state.label[1:]
-
+ """
-Gui(page, libraries=[ExampleLibrary()]).run(debug=True)
+ Gui(page, libraries=[ExampleLibrary()]).run(debug=True)
diff --git a/taipy/core/data/data_node.py b/taipy/core/data/data_node.py
index 00e7a4b8b2..5a771069c9 100644
--- a/taipy/core/data/data_node.py
+++ b/taipy/core/data/data_node.py
@@ -84,20 +84,21 @@ class DataNode(_Entity, _Labeled):
import taipy as tp
from taipy import Config
- # Configure a global data node
- dataset_cfg = Config.configure_data_node("my_dataset", scope=tp.Scope.GLOBAL)
+ if __name__ == "__main__":
+ # Configure a global data node
+ dataset_cfg = Config.configure_data_node("my_dataset", scope=tp.Scope.GLOBAL)
- # Instantiate a global data node
- dataset = tp.create_global_data_node(dataset_cfg)
+ # Instantiate a global data node
+ dataset = tp.create_global_data_node(dataset_cfg)
- # Retrieve the list of all data nodes
- all_data_nodes = tp.get_data_nodes()
+ # Retrieve the list of all data nodes
+ all_data_nodes = tp.get_data_nodes()
- # Write the data
- dataset.write("Hello, World!")
+ # Write the data
+ dataset.write("Hello, World!")
- # Read the data
- print(dataset.read())
+ # Read the data
+ print(dataset.read())
```
Attributes:
diff --git a/taipy/core/notification/core_event_consumer.py b/taipy/core/notification/core_event_consumer.py
index 7417bfbdd4..454ef113cf 100644
--- a/taipy/core/notification/core_event_consumer.py
+++ b/taipy/core/notification/core_event_consumer.py
@@ -34,17 +34,18 @@ def process_event(self, event: Event):
print(f"Received event created at : {event.creation_date}")
pass
- registration_id, registered_queue = Notifier.register(
- entity_type=EventEntityType.SCENARIO,
- operation=EventOperation.CREATION
- )
-
- consumer = MyEventConsumer(registration_id, registered_queue)
- consumer.start()
- # ...
- consumer.stop()
-
- Notifier.unregister(registration_id)
+ if __name__ == "__main__":
+ registration_id, registered_queue = Notifier.register(
+ entity_type=EventEntityType.SCENARIO,
+ operation=EventOperation.CREATION
+ )
+
+ consumer = MyEventConsumer(registration_id, registered_queue)
+ consumer.start()
+ # ...
+ consumer.stop()
+
+ Notifier.unregister(registration_id)
```
Firstly, we would create a consumer class extending from CoreEventConsumerBase
diff --git a/taipy/core/scenario/scenario.py b/taipy/core/scenario/scenario.py
index 511a9e9ea5..6ce2e6ecb5 100644
--- a/taipy/core/scenario/scenario.py
+++ b/taipy/core/scenario/scenario.py
@@ -72,24 +72,25 @@ class Scenario(_Entity, Submittable, _Labeled):
def by_two(x: int):
return x * 2
- # Configure scenarios
- input_cfg = Config.configure_data_node("my_input")
- result_cfg = Config.configure_data_node("my_result")
- task_cfg = Config.configure_task("my_double", function=by_two, input=input_cfg, output=result_cfg)
- scenario_cfg = Config.configure_scenario("my_scenario", task_configs=[task_cfg])
+ if __name__ == "__main__":
+ # Configure scenarios
+ input_cfg = Config.configure_data_node("my_input")
+ result_cfg = Config.configure_data_node("my_result")
+ task_cfg = Config.configure_task("my_double", function=by_two, input=input_cfg, output=result_cfg)
+ scenario_cfg = Config.configure_scenario("my_scenario", task_configs=[task_cfg])
- # Create a new scenario from the configuration
- scenario = tp.create_scenario(scenario_cfg)
+ # Create a new scenario from the configuration
+ scenario = tp.create_scenario(scenario_cfg)
- # Write the input data and submit the scenario
- scenario.my_input.write(3)
- scenario.submit()
+ # Write the input data and submit the scenario
+ scenario.my_input.write(3)
+ scenario.submit()
- # Read the result
- print(scenario.my_result.read()) # Output: 6
+ # Read the result
+ print(scenario.my_result.read()) # Output: 6
- # Retrieve all scenarios
- all_scenarios = tp.get_scenarios()
+ # Retrieve all scenarios
+ all_scenarios = tp.get_scenarios()
```
Attributes:
diff --git a/taipy/core/sequence/sequence.py b/taipy/core/sequence/sequence.py
index 698953b3c1..c7785cb89a 100644
--- a/taipy/core/sequence/sequence.py
+++ b/taipy/core/sequence/sequence.py
@@ -79,34 +79,36 @@ def predict(model, month):
def planning(forecast, capacity):
...
- # Configure data nodes
- sales_history_cfg = Config.configure_csv_data_node("sales_history")
- trained_model_cfg = Config.configure_data_node("trained_model")
- current_month_cfg = Config.configure_data_node("current_month")
- forecasts_cfg = Config.configure_data_node("sales_predictions")
- capacity_cfg = Config.configure_data_node("capacity")
- production_orders_cfg = Config.configure_sql_data_node("production_orders")
-
- # Configure tasks and scenarios
- train_cfg = Config.configure_task("train", function=training, input=sales_history_cfg, output=trained_model_cfg)
- predict_cfg = Config.configure_task("predict", function=predict,
- input=[trained_model_cfg, current_month_cfg],
- output=forecasts_cfg)
- plan_cfg = Config.configure_task("planning", function=planning,
- input=[forecasts_cfg, capacity_cfg],
- output=production_orders_cfg)
- scenario_cfg = Config.configure_scenario("scenario", task_configs=[train_cfg, predict_cfg, plan_cfg])
-
- # Create a new scenario and sequences
- scenario = tp.create_scenario(scenario_cfg)
- scenario.add_sequence("sales_sequence", [train_cfg, predict_cfg])
- scenario.add_sequence("production_sequence", [plan_cfg])
-
- # Get all sequences
- all_sequences = tp.get_sequences()
-
- # Submit one sequence only
- tp.submit(scenario.sales_sequence)
+ if __name__ == "__main__":
+ # Configure data nodes
+ sales_history_cfg = Config.configure_csv_data_node("sales_history")
+ trained_model_cfg = Config.configure_data_node("trained_model")
+ current_month_cfg = Config.configure_data_node("current_month")
+ forecasts_cfg = Config.configure_data_node("sales_predictions")
+ capacity_cfg = Config.configure_data_node("capacity")
+ production_orders_cfg = Config.configure_sql_data_node("production_orders")
+
+ # Configure tasks and scenarios
+ train_cfg = Config.configure_task("train", function=training,
+ input=sales_history_cfg, output=trained_model_cfg)
+ predict_cfg = Config.configure_task("predict", function=predict,
+ input=[trained_model_cfg, current_month_cfg],
+ output=forecasts_cfg)
+ plan_cfg = Config.configure_task("planning", function=planning,
+ input=[forecasts_cfg, capacity_cfg],
+ output=production_orders_cfg)
+ scenario_cfg = Config.configure_scenario("scenario", task_configs=[train_cfg, predict_cfg, plan_cfg])
+
+ # Create a new scenario and sequences
+ scenario = tp.create_scenario(scenario_cfg)
+ scenario.add_sequence("sales_sequence", [train_cfg, predict_cfg])
+ scenario.add_sequence("production_sequence", [plan_cfg])
+
+ # Get all sequences
+ all_sequences = tp.get_sequences()
+
+ # Submit one sequence only
+ tp.submit(scenario.sales_sequence)
```
Note that the sequences are not necessarily disjoint and may share some tasks.
diff --git a/taipy/core/submission/submission.py b/taipy/core/submission/submission.py
index e317e60ffd..9ee0daff49 100644
--- a/taipy/core/submission/submission.py
+++ b/taipy/core/submission/submission.py
@@ -55,23 +55,24 @@ class Submission(_Entity, _Labeled):
def by_two(x: int):
return x * 2
- # Configure scenarios
- input_cfg = Config.configure_data_node("my_input")
- result_cfg = Config.configure_data_node("my_result")
- task_cfg = Config.configure_task("my_double", function=by_two, input=input_cfg, output=result_cfg)
- scenario_cfg = Config.configure_scenario("my_scenario", task_configs=[task_cfg])
-
- # Create a new scenario from the configuration
- scenario = tp.create_scenario(scenario_cfg)
-
- # Write the input data and submit the scenario
- scenario.my_input.write(3)
- submission = scenario.submit()
-
- # Retrieve the list of jobs, the submission status, and the creation date
- jobs = submission.jobs
- status = submission.submission_status
- creation_date = submission.creation_date
+ if __name__ == "__main__":
+ # Configure scenarios
+ input_cfg = Config.configure_data_node("my_input")
+ result_cfg = Config.configure_data_node("my_result")
+ task_cfg = Config.configure_task("my_double", function=by_two, input=input_cfg, output=result_cfg)
+ scenario_cfg = Config.configure_scenario("my_scenario", task_configs=[task_cfg])
+
+ # Create a new scenario from the configuration
+ scenario = tp.create_scenario(scenario_cfg)
+
+ # Write the input data and submit the scenario
+ scenario.my_input.write(3)
+ submission = scenario.submit()
+
+ # Retrieve the list of jobs, the submission status, and the creation date
+ jobs = submission.jobs
+ status = submission.submission_status
+ creation_date = submission.creation_date
```
"""
diff --git a/taipy/core/task/task.py b/taipy/core/task/task.py
index 867c2dc461..f69394b1ed 100644
--- a/taipy/core/task/task.py
+++ b/taipy/core/task/task.py
@@ -51,29 +51,30 @@ class Task(_Entity, _Labeled):
def by_two(x: int):
return x * 2
- # Configure data nodes, tasks and scenarios
- input_cfg = Config.configure_data_node("my_input", default_data=2)
- result_cfg = Config.configure_data_node("my_result")
- task_cfg = Config.configure_task("my_double", function=by_two, input=input_cfg, output=result_cfg)
- scenario_cfg = Config.configure_scenario("my_scenario", task_configs=[task_cfg])
-
- # Instantiate a task along with a scenario
- sc = tp.create_scenario(scenario_cfg)
-
- # Retrieve task and data nodes from scenario
- task_input = sc.my_input
- double_task = sc.my_double
- task_result = sc.my_result
-
- # Write the input data and submit the task
- task_input.write(3)
- double_task.submit()
-
- # Read the result
- print(task_result.read()) # Output: 6
-
- # Retrieve the list of all tasks
- all_tasks = tp.get_tasks()
+ if __name__ == "__main__":
+ # Configure data nodes, tasks and scenarios
+ input_cfg = Config.configure_data_node("my_input", default_data=2)
+ result_cfg = Config.configure_data_node("my_result")
+ task_cfg = Config.configure_task("my_double", function=by_two, input=input_cfg, output=result_cfg)
+ scenario_cfg = Config.configure_scenario("my_scenario", task_configs=[task_cfg])
+
+ # Instantiate a task along with a scenario
+ sc = tp.create_scenario(scenario_cfg)
+
+ # Retrieve task and data nodes from scenario
+ task_input = sc.my_input
+ double_task = sc.my_double
+ task_result = sc.my_result
+
+ # Write the input data and submit the task
+ task_input.write(3)
+ double_task.submit()
+
+ # Read the result
+ print(task_result.read()) # Output: 6
+
+ # Retrieve the list of all tasks
+ all_tasks = tp.get_tasks()
```
Attributes:
diff --git a/taipy/gui/__init__.py b/taipy/gui/__init__.py
index b8574e7acc..dbb2843037 100644
--- a/taipy/gui/__init__.py
+++ b/taipy/gui/__init__.py
@@ -26,7 +26,9 @@
Copy these two lines into a file called *taipy_app.py*.
```py title="taipy_app.py"
from taipy import Gui
- Gui("# Hello Taipy!").run()
+
+ if __name__ == "__main__":
+ Gui("# Hello Taipy!").run()
```
- Install Taipy:
```
diff --git a/taipy/gui/builder/page.py b/taipy/gui/builder/page.py
index e6b54c3405..d36f47bf10 100644
--- a/taipy/gui/builder/page.py
+++ b/taipy/gui/builder/page.py
@@ -24,17 +24,18 @@ class Page(_Renderer):
This class is typically be used as a Python Context Manager to add the elements.
Here is how you can create a single-page application, creating the elements with code:
- ```py
+ ```python
from taipy.gui import Gui
from taipy.gui.builder import Page, button
def do_something(state):
pass
- with Page() as page:
- button(label="Press me", on_action=do_something)
+ if __name__ == "__main__":
+ with Page() as page:
+ button(label="Press me", on_action=do_something)
- Gui(page).run()
+ Gui(page).run()
```
"""
diff --git a/taipy/rest/api/resources/cycle.py b/taipy/rest/api/resources/cycle.py
index 16d060b0b8..d045bd5e56 100644
--- a/taipy/rest/api/resources/cycle.py
+++ b/taipy/rest/api/resources/cycle.py
@@ -76,9 +76,9 @@ class CycleResource(Resource):
This Python example requires the 'requests' package to be installed (`pip install requests`).
```python
import requests
- response = requests.get("http://localhost:5000/api/v1/cycles/CYCLE_223894_e019-b50b-4b9f-ac09-527a")
- print(response)
- print(response.json())
+ response = requests.get("http://localhost:5000/api/v1/cycles/CYCLE_223894_e019-b50b-4b9f-ac09-527a")
+ print(response)
+ print(response.json())
```
`CYCLE_223894_e0fab919-b50b-4b9f-ac09-52f77474fa7a` is the value of the *cycle_id* parameter. It
represents the identifier of the Cycle we want to retrieve.
@@ -258,9 +258,9 @@ class CycleList(Resource):
This Python example requires the 'requests' package to be installed (`pip install requests`).
```python
import requests
- response = requests.get("http://localhost:5000/api/v1/cycles")
- print(response)
- print(response.json())
+ response = requests.get("http://localhost:5000/api/v1/cycles")
+ print(response)
+ print(response.json())
```
In case of success here is an output example:
@@ -333,16 +333,16 @@ class CycleList(Resource):
This Python example requires the 'requests' package to be installed (`pip install requests`).
```python
import requests
- cycle_schema = {
- "frequency": "DAILY",
- "properties": {},
- "creation_date": "2020-01-01T00:00:00",
- "start_date": "2020-01-01T00:00:00",
- "end_date": "2020-01-01T00:00:00"
- }
- response = requests.post("http://localhost:5000/api/v1/cycles", json=cycle_schema)
- print(response)
- print(response.json())
+ cycle_schema = {
+ "frequency": "DAILY",
+ "properties": {},
+ "creation_date": "2020-01-01T00:00:00",
+ "start_date": "2020-01-01T00:00:00",
+ "end_date": "2020-01-01T00:00:00"
+ }
+ response = requests.post("http://localhost:5000/api/v1/cycles", json=cycle_schema)
+ print(response)
+ print(response.json())
```
A `CycleSchema^` is provided as a dictionary to specify the various attributes of the `Cycle^` to
create.
diff --git a/taipy/rest/api/resources/datanode.py b/taipy/rest/api/resources/datanode.py
index 6a78d2ebbf..24e34e5cee 100644
--- a/taipy/rest/api/resources/datanode.py
+++ b/taipy/rest/api/resources/datanode.py
@@ -116,10 +116,11 @@ class DataNodeResource(Resource):
This Python example requires the 'requests' package to be installed (`pip install requests`).
```python
import requests
- response = requests.get(
- "http://localhost:5000/api/v1/datanodes/DATANODE_historical_data_set_9db1b542-2e45-44e7-8a85-03ef9ead173d")
- print(response)
- print(response.json())
+ response = requests.get(
+ "http://localhost:5000/api/v1/datanodes/DATANODE_historical_data_set_9db1b542-2e45-44e7-8a85-03ef9ead173d"
+ )
+ print(response)
+ print(response.json())
```
`DATANODE_hist_cfg_75750ed8-4e09-4e00-958d-e352ee426cc9` is the value of the *datanode_id* parameter. It
represents the identifier of the data node we want to retrieve.
@@ -210,10 +211,11 @@ class DataNodeResource(Resource):
This Python example requires the 'requests' package to be installed (`pip install requests`).
```python
import requests
- response = requests.delete(
- "http://localhost:5000/api/v1/datanodes/DATANODE_historical_data_set_9db1b542-2e45-44e7-8a85-03ef9ead173d")
- print(response)
- print(response.json())
+ response = requests.delete(
+ "http://localhost:5000/api/v1/datanodes/DATANODE_historical_data_set_9db1b542-2e45-44e7-8a85-03ef9ead173d"
+ )
+ print(response)
+ print(response.json())
```
`DATANODE_historical_data_set_9db1b542-2e45-44e7-8a85-03ef9ead173d` is the value of the
*datanode_id* parameter. It represents the identifier of the Cycle we want to delete.
@@ -324,9 +326,9 @@ class DataNodeList(Resource):
This Python example requires the 'requests' package to be installed (`pip install requests`).
```python
import requests
- response = requests.get("http://localhost:5000/api/v1/datanodes")
- print(response)
- print(response.json())
+ response = requests.get("http://localhost:5000/api/v1/datanodes")
+ print(response)
+ print(response.json())
```
In case of success here is an output example:
@@ -411,9 +413,9 @@ class DataNodeList(Resource):
This Python example requires the 'requests' package to be installed (`pip install requests`).
```python
import requests
- response = requests.post("http://localhost:5000/api/v1/datanodes?config_id=historical_data_set")
- print(response)
- print(response.json())
+ response = requests.post("http://localhost:5000/api/v1/datanodes?config_id=historical_data_set")
+ print(response)
+ print(response.json())
```
In this example the *config_id* value ("historical_data_set") is given as parameter directly in the
url. A corresponding `DataNodeConfig^` must exist and must have been configured before.
@@ -527,10 +529,10 @@ class DataNodeReader(Resource):
This Python example requires the 'requests' package to be installed (`pip install requests`).
```python
import requests
- response = requests.get(
- "http://localhost:5000/api/v1/datanodes/DATANODE_historical_data_set_9db1b542-2e45-44e7-8a85-03ef9ead173d/read")
- print(response)
- print(response.json())
+ response = requests.get(
+ "http://localhost:5000/api/v1/datanodes/DATANODE_historical_data_set_9db1b542-2e45-44e7-8a85-03ef9ead173d/read")
+ print(response)
+ print(response.json())
```
`DATANODE_historical_data_set_9db1b542-2e45-44e7-8a85-03ef9ead173d` is the *datanode_id*
parameter. It represents the identifier of the data node to read.
diff --git a/taipy/rest/api/resources/scenario.py b/taipy/rest/api/resources/scenario.py
index 1def7f9a07..87a375e4da 100644
--- a/taipy/rest/api/resources/scenario.py
+++ b/taipy/rest/api/resources/scenario.py
@@ -81,10 +81,11 @@ class ScenarioResource(Resource):
This Python example requires the 'requests' package to be installed (`pip install requests`).
```python
import requests
- response = requests.get(
- "http://localhost:5000/api/v1/scenarios/SCENARIO_63cb358d-5834-4d73-84e4-a6343df5e08c")
- print(response)
- print(response.json())
+ response = requests.get(
+ "http://localhost:5000/api/v1/scenarios/SCENARIO_63cb358d-5834-4d73-84e4-a6343df5e08c"
+ )
+ print(response)
+ print(response.json())
```
`SCENARIO_63cb358d-5834-4d73-84e4-a6343df5e08c` is the value of the *scenario_id* parameter. It
represents the identifier of the Cycle we want to retrieve.
@@ -166,10 +167,11 @@ class ScenarioResource(Resource):
This Python example requires the 'requests' package to be installed (`pip install requests`).
```python
import requests
- response = requests.delete(
- "http://localhost:5000/api/v1/scenarios/SCENARIO_63cb358d-5834-4d73-84e4-a6343df5e08c")
- print(response)
- print(response.json())
+ response = requests.delete(
+ "http://localhost:5000/api/v1/scenarios/SCENARIO_63cb358d-5834-4d73-84e4-a6343df5e08c"
+ )
+ print(response)
+ print(response.json())
```
`SCENARIO_63cb358d-5834-4d73-84e4-a6343df5e08c` is the value of the *scenario_id* parameter. It
represents the identifier of the Scenario we want to delete.
@@ -275,9 +277,9 @@ class ScenarioList(Resource):
This Python example requires the 'requests' package to be installed (`pip install requests`).
```python
import requests
- response = requests.get("http://localhost:5000/api/v1/scenarios")
- print(response)
- print(response.json())
+ response = requests.get("http://localhost:5000/api/v1/scenarios")
+ print(response)
+ print(response.json())
```
In case of success here is an output example:
@@ -361,9 +363,9 @@ class ScenarioList(Resource):
This Python example requires the 'requests' package to be installed (`pip install requests`).
```python
import requests
- response = requests.post("http://localhost:5000/api/v1/scenarios?config_id=my_scenario_config")
- print(response)
- print(response.json())
+ response = requests.post("http://localhost:5000/api/v1/scenarios?config_id=my_scenario_config")
+ print(response)
+ print(response.json())
```
In this example the *config_id* value ("my_scenario_config") is given as parameter directly in the
url. A corresponding `ScenarioConfig^` must exist and must have been configured before.
@@ -476,11 +478,12 @@ class ScenarioExecutor(Resource):
=== "Python"
This Python example requires the 'requests' package to be installed (`pip install requests`).
```python
- import requests
- response = requests.post(
- "http://localhost:5000/api/v1/scenarios/submit/SCENARIO_63cb358d-5834-4d73-84e4-a6343df5e08c")
- print(response)
- print(response.json())
+ import requests
+ response = requests.post(
+ "http://localhost:5000/api/v1/scenarios/submit/SCENARIO_63cb358d-5834-4d73-84e4-a6343df5e08c"
+ )
+ print(response)
+ print(response.json())
```
`SCENARIO_63cb358d-5834-4d73-84e4-a6343df5e08c` is the value of the *scenario_id* parameter. It
represents the identifier of the Scenario we want to submit.