Spaces:
Runtime error
Runtime error
| import pandas as pd | |
| import plotly.graph_objects as go | |
| def generate_four_features_parcats_plot(dataFrame: pd.DataFrame, landscape: str, life_column: str, | |
| life_label: str, edible_column: str, poisonous_column: str, | |
| title: str, color_dict: dict[str, str], height: float = 900, | |
| width: float = 1600) -> go.Figure: | |
| ''' | |
| Returns a parallel categories plot of plants present in a landscape, regarding their growth cycle, | |
| edibility, and toxicity. | |
| Parameters: | |
| ------------------------------------------------------------------------------------------------------------ | |
| dataFrame: Name of a pandas DataFrame(two-dimensional, size-mutable, potentially heterogeneous tabular data) | |
| landscape: Name of the landscape to be explored | |
| life_column: Name of the dataFrame's column referring to the life cycle of the plants | |
| life_label: Label for the life cycle dimension | |
| edible_column: Name of the dataFrame's column referring to the edibility of the plants | |
| poisonous_column: Name of the dataFrame's column referring to the toxicity of the plants | |
| title: Title of the parallel categories plot | |
| color_dict: Custom dictionary for the feature, containing the colors for each landscape | |
| height: Height of the plot; default is 900 | |
| width: Width of the plot; default is 1600 | |
| ------------------------------------------------------------------------------------------------------------ | |
| ''' | |
| # Filter data for the current landscape | |
| landscape_data = dataFrame[dataFrame[landscape] == True] | |
| # Create dimensions | |
| landscape_dim = go.parcats.Dimension( | |
| values = landscape_data[landscape], label = landscape) | |
| life_cycle_dim = go.parcats.Dimension( | |
| values = landscape_data[life_column], label = life_label) | |
| edible_dim = go.parcats.Dimension( | |
| values = landscape_data[edible_column], label = edible_column) | |
| poisonous_dim = go.parcats.Dimension( | |
| values = landscape_data[poisonous_column], label = poisonous_column) | |
| # Get the color for the current landscape | |
| landscape_color = color_dict.get(landscape, "gray") | |
| # Create Parcats trace with color | |
| parcats_trace = go.Parcats( | |
| dimensions = [landscape_dim, life_cycle_dim, edible_dim, poisonous_dim], | |
| line = {"color" : landscape_color}, # Set color for the landscape | |
| hoveron = "category", hoverinfo="count+probability", | |
| labelfont = {"size" : 18, "family": "Times"}, | |
| tickfont = {"size" : 16, "family": "Times"}, | |
| arrangement = "freeform") | |
| # Create layout | |
| layout = go.Layout(height = height, | |
| width = width, | |
| title = dict(text = title, font = dict(family = "Times New Roman", size = 24)), font = dict(size = 18, family = "Times New Roman"), | |
| margin = dict(l = 50, r = 50, b = 50, t = 50)) | |
| # Create figure | |
| fig = go.Figure(data = [parcats_trace], layout = layout) | |
| return fig |