示例#1
0
    def __plot_con_notebook(self, split_n)->pyecharts.charts.Bar:
        """
        调用echarts,连续变量
        :param split_n:
        :return:
        """
        data = self.data[~np.isnan(self.X)]
        data.sort_values('X',inplace=True)

        X = data['X'].values
        y = data['y'].values
        max_x = max(X)
        min_x = min(X)

        freq,edge = np.histogram(X, np.linspace(min_x, max_x, split_n+1))
        freq = np.round(freq/data.shape[0] *100,2)
        # print(freq)
        # print(edge)
        bar = Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK))
        bar.load_javascript()

        bar.add_xaxis([('(' + str(int(edge[i])) + ' , ' + str(int((edge[i + 1]))) + ']') if i else (
                    '[' + str(int(edge[i])) + ' , ' + str(int((edge[i + 1]))) + ']') for i in range(len(edge) - 1)])

        bar.add_yaxis(self.var_name, freq.tolist(), category_gap=1, )
        bar.set_global_opts(title_opts=opts.TitleOpts(title=self.var_name),
                           datazoom_opts=opts.DataZoomOpts(is_show=True),
                           xaxis_opts=opts.AxisOpts(name_location='end', name='Groups'),
                           yaxis_opts=opts.AxisOpts(name_location='end', name='%'),
                           )
        bar.set_series_opts(label_opts=opts.LabelOpts(is_show=True))
        return bar
示例#2
0
def show(x: list, y: list, title: str = "键盘键入统计"):
    bar = Bar(init_opts=opts.InitOpts(theme=ThemeType.WONDERLAND))
    bar.add_xaxis(x)
    bar.add_yaxis("", y, category_gap="60%")
    bar.set_series_opts(
        itemstyle_opts={
            "normal": {
                "color":
                JsCode("""new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                offset: 0,
                color: 'rgba(0, 244, 255, 1)'
            }, {
                offset: 1,
                color: 'rgba(250, 177, 160, 1)'
            }], false)"""),
                "barBorderRadius": [30, 30, 30, 30],
                "shadowColor":
                "rgb(0, 160, 221)",
            }
        })
    bar.set_global_opts(
        title_opts=opts.TitleOpts(title=title),
        datazoom_opts=[opts.DataZoomOpts(),
                       opts.DataZoomOpts(type_="inside")],
    )

    bar.load_javascript()
    bar.render_notebook()

    return Markup(bar.render_embed())
示例#3
0
    def __plot_cat_notebook(self):
        data = pd.value_counts(self.X)
        x = list(data.index.values)
        values = list(data.values / np.sum(data.values) * 100)

        bar = Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK))
        bar.load_javascript()

        bar.add_xaxis([i for i in x])

        bar.add_yaxis("1", [round(i, 2) for i in values])

        bar.set_global_opts(title_opts=opts.TitleOpts(title=self.var_name),
                            xaxis_opts=opts.AxisOpts(name_location='end', name='%'),
                            yaxis_opts=opts.AxisOpts(name_location='end', name='Groups'),
                            )
        bar.reversal_axis()
        bar.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position="right"))

        return bar