Scatter plot. Args: data_frame (pandas.DataFrame): Data source for the plot. x_column (str): Column name to plot on the x axis. y_column (str): Column name to plot on the y axis. size_column (str, optional): Column name of numerical values
(
self,
data_frame,
x_column,
y_column,
size_column=None,
color_column=None,
color_order=None,
alpha=1.0,
marker="circle",
)
| 382 | return self._chart |
| 383 | |
| 384 | def scatter( |
| 385 | self, |
| 386 | data_frame, |
| 387 | x_column, |
| 388 | y_column, |
| 389 | size_column=None, |
| 390 | color_column=None, |
| 391 | color_order=None, |
| 392 | alpha=1.0, |
| 393 | marker="circle", |
| 394 | ): |
| 395 | """Scatter plot. |
| 396 | |
| 397 | Args: |
| 398 | data_frame (pandas.DataFrame): Data source for the plot. |
| 399 | x_column (str): Column name to plot on the x axis. |
| 400 | y_column (str): Column name to plot on the y axis. |
| 401 | size_column (str, optional): Column name of numerical values |
| 402 | to plot on the size dimension. |
| 403 | color_column (str, optional): Column name to group by on |
| 404 | the color dimension. |
| 405 | color_order (list, optional): List of values within the |
| 406 | 'color_column' for specific sorting of the colors. |
| 407 | alpha (float): Alpha value. |
| 408 | marker (str): marker type. Valid types: |
| 409 | 'asterisk', 'circle', 'circle_cross', 'circle_x', 'cross', |
| 410 | 'diamond', 'diamond_cross', 'hex', 'inverted_triangle', |
| 411 | 'square', 'square_x', 'square_cross', 'triangle', |
| 412 | 'x', '*', '+', 'o', 'ox', 'o+' |
| 413 | """ |
| 414 | if size_column is None: |
| 415 | size_column = 6 |
| 416 | |
| 417 | colors, color_values = self._get_color_and_order(data_frame, color_column, color_order) |
| 418 | |
| 419 | self._set_numeric_axis_default_format(data_frame, x_column, y_column) |
| 420 | |
| 421 | for color_value, color in zip(color_values, colors): |
| 422 | if color_column is None: # Single series |
| 423 | sliced_data = data_frame |
| 424 | else: |
| 425 | sliced_data = data_frame[data_frame[color_column] == color_value] |
| 426 | # Filter to only relevant columns. |
| 427 | sliced_data = sliced_data[ |
| 428 | [col for col in sliced_data.columns if col in (x_column, y_column, size_column, color_column)] |
| 429 | ] |
| 430 | cast_data = self._cast_datetime_axis(sliced_data, x_column) |
| 431 | |
| 432 | source = self._named_column_data_source(cast_data, series_name=color_value) |
| 433 | |
| 434 | color_value = str(color_value) if color_value is not None else color_value |
| 435 | |
| 436 | self._plot_with_legend( |
| 437 | self._chart.figure.scatter, |
| 438 | legend_label=color_value, |
| 439 | x=x_column, |
| 440 | y=y_column, |
| 441 | size=size_column, |