def test_bar_datazoom_inside(): # bar dataZoom inside-type attr = ["{}月".format(i) for i in range(1, 13)] v1 = [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3] v2 = [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3] bar = Bar("柱状图示例") bar.add("蒸发量", attr, v1, mark_line=["average"], mark_point=["max", "min"]) bar.add("降水量", attr, v2, mark_line=["average"], mark_point=["max", "min"], is_datazoom_show=True, datazoom_range=[20, 60], datazoom_type='inside') assert "dataZoom" in bar._repr_html_() bar.render() attr = ["{}天".format(i) for i in range(30)] v1 = [random.randint(1, 30) for _ in range(30)] bar = Bar("Bar - datazoom - inside 示例") bar.add("", attr, v1, is_datazoom_show=True, datazoom_type='inside', datazoom_range=[10, 25]) assert ': "inside"' in bar._repr_html_() assert ': "slider"' not in bar._repr_html_() bar.render()
def test_bar_rotate_label(): days = ["{}天".format(i) for i in range(20)] days_v1 = [random.randint(1, 20) for _ in range(20)] bar = Bar("坐标轴标签旋转示例") bar.add("", days, days_v1, xaxis_interval=0, xaxis_rotate=30, yaxis_rotate=30) assert "stack_" not in bar._repr_html_()
def test_bar_stack(): bar = Bar("柱状图数据堆叠示例") bar.add("商家A", CLOTHES, clothes_v1, is_stack=True) bar.add("商家B", CLOTHES, clothes_v2, is_stack=True) html_content = bar._repr_html_() assert "dataZoom" not in html_content assert "stack_" in html_content
def test_bar(): # bar stack attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"] v1 = [5, 20, 36, 10, 75, 90] v2 = [10, 25, 8, 60, 20, 80] bar = Bar("柱状图数据堆叠示例") bar.add("商家A", attr, v1, is_stack=True) bar.add("商家B", attr, v2, is_stack=True) assert "dataZoom" not in bar._repr_html_() assert "stack_" in bar._repr_html_() bar.render() # bar markPoint&markLine bar = Bar("标记线和标记点示例") bar.add("商家A", attr, v1, mark_point=["average"]) bar.add("商家B", attr, v2, mark_line=["min", "max"]) assert '"average"' in bar._repr_html_() bar.render() # bar convert xAxis-yAxis bar = Bar("x 轴和 y 轴交换") bar.add("商家A", attr, v1) bar.add("商家B", attr, v2, is_convert=True) assert "average" not in bar._repr_html_() bar.render() # bar rotate label attr = ["{}天".format(i) for i in range(20)] v1 = [random.randint(1, 20) for _ in range(20)] bar = Bar("坐标轴标签旋转示例") bar.add("", attr, v1, xaxis_interval=0, xaxis_rotate=30, yaxis_rotate=30) assert "stack_" not in bar._repr_html_() bar.render() # bar waterfall attr = ["{}月".format(i) for i in range(1, 8)] v1 = [0, 100, 200, 300, 400, 220, 250] v2 = [1000, 800, 600, 500, 450, 400, 300] bar = Bar("瀑布图示例") bar.add("", attr, v1, label_color=['rgba(0,0,0,0)'], is_stack=True) bar.add("月份", attr, v2, is_label_show=True, is_stack=True, label_pos='inside') bar.render()
def test_chart_with_custom_host(): local_host = 'http://localhost:8000' v1 = [5, 20, 36, 10, 75, 90] bar = Bar("柱状图数据堆叠示例", jshost=local_host) bar.add("商家A", CLOTHES, v1, is_stack=True) html = bar._repr_html_() assert local_host in html assert constants.CONFIGURATION['HOST'] != local_host
def test_chart_with_custom_host(): local_host = 'http://localhost:8000' attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"] v1 = [5, 20, 36, 10, 75, 90] bar = Bar("柱状图数据堆叠示例", jshost=local_host) bar.add("商家A", attr, v1, is_stack=True) html = bar._repr_html_() assert local_host in html assert constants.CONFIGURATION['HOST'] != local_host
def test_bar_datazoom_undefined(): days = ["{}天".format(i) for i in range(30)] days_v1 = [random.randint(1, 30) for _ in range(30)] bar = Bar("Bar - datazoom 默认 示例") bar.add("", days, days_v1, is_label_show=True, is_datazoom_show=True) html_content = bar._repr_html_() assert "dataZoom" in html_content assert ': "slider"' in html_content assert ': "inside"' not in html_content
def test_bar_datazoom_inside(): days = ["{}天".format(i) for i in range(30)] days_v1 = [random.randint(1, 30) for _ in range(30)] bar = Bar("Bar - datazoom - inside 示例") bar.add("", days, days_v1, is_datazoom_show=True, datazoom_type='inside', datazoom_range=[10, 25]) html_content = bar._repr_html_() assert "dataZoom" in html_content assert ': "inside"' in html_content assert ': "slider"' not in html_content
def test_online_with_chart(): old_host = constants.CONFIGURATION['HOST'] online() v1 = [5, 20, 36, 10, 75, 90] v2 = [10, 25, 8, 60, 20, 80] bar = Bar("柱状图数据堆叠示例") bar.add("商家A", CLOTHES, v1, is_stack=True) bar.add("商家B", CLOTHES, v2, is_stack=True) html = bar._repr_html_() assert DEFAULT_HOST in html constants.CONFIGURATION['HOST'] = old_host
def test_bar_datazoom_both(): # bar dataZoom both-type attr = ["{}天".format(i) for i in range(30)] v1 = [random.randint(1, 30) for _ in range(30)] bar = Bar("Bar - datazoom - both 示例") bar.add("", attr, v1, is_datazoom_show=True, datazoom_type='both', datazoom_range=[10, 25]) html_content = bar._repr_html_() assert "dataZoom" in html_content assert ': "inside"' in html_content assert ': "slider"' in html_content
def test_in_event_of_overly_configured_custom_url_is_precedent(): old_host = constants.CONFIGURATION['HOST'] local_host = 'http://localhost:8000' online() v1 = [5, 20, 36, 10, 75, 90] v2 = [10, 25, 8, 60, 20, 80] bar = Bar("柱状图数据堆叠示例", jshost=local_host) bar.add("商家A", CLOTHES, v1, is_stack=True) bar.add("商家B", CLOTHES, v2, is_stack=True) html = bar._repr_html_() assert DEFAULT_HOST not in html assert local_host in html constants.CONFIGURATION['HOST'] = old_host
def test_bar_line_color_and_with(): bar = Bar("柱状图") bar.add( "商家A", CLOTHES, clothes_v1, xaxis_line_color="green", xaxis_line_width=5, xaxis_label_textcolor="black", ) html_content = bar._repr_html_() assert '"color": "green"' in html_content assert '"width": 5' in html_content
def test_bar_datazoom_both(): days = ["{}天".format(i) for i in range(30)] days_v1 = [random.randint(1, 30) for _ in range(30)] bar = Bar("Bar - datazoom - both 示例") bar.add( "", days, days_v1, is_datazoom_show=True, datazoom_type="both", datazoom_range=[10, 25], is_toolbox_show=False, ) html_content = bar._repr_html_() assert "dataZoom" in html_content assert ': "inside"' in html_content assert ': "slider"' in html_content
def test_bar_datazoom_xaxis_and_yaxis(): days = ["{}天".format(i) for i in range(30)] days_v1 = [random.randint(1, 30) for _ in range(30)] bar = Bar("Bar - datazoom - xaxis/yaxis 示例") bar.add( "", days, days_v1, # 默认为 X 轴,横向 is_datazoom_show=True, datazoom_type="slider", datazoom_range=[10, 25], # 新增额外的 dataZoom 控制条,纵向 is_datazoom_extra_show=True, datazoom_extra_type="slider", datazoom_extra_range=[10, 25], is_toolbox_show=False, ) assert len(bar.options.get("dataZoom")) == 2 html_content = bar._repr_html_() assert "dataZoom" in html_content assert ': "slider"' in html_content assert ': "vertical"' in html_content assert ': "horizontal"' in html_content
def test_bar_convert_xy_axis(): bar = Bar("x 轴和 y 轴交换") bar.add("商家A", CLOTHES, clothes_v1) bar.add("商家B", CLOTHES, clothes_v2, is_convert=True) assert "average" not in bar._repr_html_()
def test_bar_marks(): bar = Bar("标记线和标记点示例") bar.add("商家A", CLOTHES, clothes_v1, mark_point=["average"]) bar.add("商家B", CLOTHES, clothes_v2, mark_line=["min", "max"]) assert '"average"' in bar._repr_html_()
def test_mouse_click(): bar = Bar("我的第一个图表", "这里是副标题") bar.add("服装", ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"], [5, 20, 36, 10, 75, 90]) bar.on(events.MOUSE_CLICK, on_click) assert "function on_click(" in bar._repr_html_()
def test_bar_extra_html_text_label(): bar = Bar("柱状图", extra_html_text_label=["bar_extra_html_text_label"]) bar.add("商家A", CLOTHES, clothes_v1, is_stack=True) bar.add("商家B", CLOTHES, clothes_v2, is_stack=True) html_content = bar._repr_html_() assert '<p style="">bar_extra_html_text_label</p>' in html_content