in chartify/_core/radar_chart.py [0:0]
def area(self, data_frame, radius_column, color_column=None, color_order=None, alpha=0.2):
"""Area plot.
Args:
data_frame (pandas.DataFrame): Data source for the plot.
radius_column (str): Column name containing radius values.
color_column (str, optional): Column name to group by on
the color dimension.
color_order (list, optional): List of values within the
'color_column' for specific sorting of the colors.
alpha (float): Alpha value.
"""
colors, color_values = self._get_color_and_order(data_frame, color_column, color_order)
self._set_numeric_axis_default_format(data_frame, radius_column, radius_column)
for color_value, color in zip(color_values, colors):
if color_column is None: # Single line
sliced_data = data_frame
else:
sliced_data = data_frame[data_frame[color_column] == color_value]
coord_df = sliced_data[[radius_column]].copy()
coord_df[self._THETA_COLUMN] = self._get_thetas(len(coord_df))
coord_df[[self._X_COLUMN, self._Y_COLUMN]] = self._to_xy_coords(
coord_df, radius_column, self._THETA_COLUMN
)
# Add endpoint
coord_df = pd.concat([coord_df, pd.DataFrame([coord_df.iloc[0]])])
source = self._named_column_data_source(coord_df, series_name=color_value)
color_value = str(color_value) if color_value is not None else color_value
self._plot_with_legend(
self._chart.figure.patch,
legend_label=color_value,
x=self._X_COLUMN,
y=self._Y_COLUMN,
source=source,
color=color,
line_width=0,
alpha=alpha,
y_range_name=self._y_range_name,
)
# Set legend defaults if there are multiple series.
if color_column is not None:
self._chart.style._apply_settings("legend")
return self._chart