Kernel Density Estimate Plot. Args: data_frame (pandas.DataFrame): Data source for the plot. values_column (str): Column of numeric values. color_column (str, optional): Column name to group by on the color dimension. color_ord
(self, data_frame, values_column, color_column=None, color_order=None)
| 784 | return self._chart |
| 785 | |
| 786 | def kde(self, data_frame, values_column, color_column=None, color_order=None): |
| 787 | """Kernel Density Estimate Plot. |
| 788 | |
| 789 | Args: |
| 790 | data_frame (pandas.DataFrame): Data source for the plot. |
| 791 | values_column (str): Column of numeric values. |
| 792 | color_column (str, optional): Column name to group by on |
| 793 | the color dimension. |
| 794 | color_order (list, optional): List of values within the |
| 795 | 'color_column' for specific sorting of the colors. |
| 796 | """ |
| 797 | # Vertical is unused since the logic is handled |
| 798 | # by the area chart |
| 799 | # vertical = self._chart.axes._vertical |
| 800 | |
| 801 | if color_column is not None: |
| 802 | color_values = sorted(data_frame[color_column].unique()) |
| 803 | else: |
| 804 | color_values = [None] |
| 805 | |
| 806 | data = pd.DataFrame() |
| 807 | for color_value in color_values: |
| 808 | if color_column is None: # Single line |
| 809 | sliced_data = data_frame |
| 810 | else: |
| 811 | sliced_data = data_frame[data_frame[color_column] == color_value] |
| 812 | values = sliced_data[values_column] |
| 813 | |
| 814 | kde = gaussian_kde(values) |
| 815 | index = np.linspace(values.min(), values.max(), 300) |
| 816 | kde_pdf = kde.evaluate(index) |
| 817 | data = pd.concat( |
| 818 | [data, pd.DataFrame({"x": index, "y": kde_pdf, "color": color_value})], |
| 819 | axis=0, |
| 820 | ) |
| 821 | |
| 822 | color_column = "color" if color_column is not None else None |
| 823 | |
| 824 | PlotNumericXY.area( |
| 825 | self, |
| 826 | data, |
| 827 | "x", |
| 828 | "y", |
| 829 | color_column=color_column, |
| 830 | color_order=color_values, |
| 831 | stacked=False, |
| 832 | ) |
| 833 | |
| 834 | return self._chart |
| 835 | |
| 836 | |
| 837 | class PlotDensityXY(BasePlot): |
no test coverage detected