zoukankan      html  css  js  c++  java
  • Python中使用cutecharts实现简单的手绘风格的图表

    场景

    效果

    cutecharts的Github:

    https://github.com/chenjiandongx/cutecharts

    注:

    博客:
    https://blog.csdn.net/badao_liumang_qizhi
    关注公众号
    霸道的程序猿
    获取编程相关电子书、教程推送与免费下载。

    实现

    安装cutecharts

    pip install cutecharts

    简单折线图

    新建cutecharts.py

    from cutecharts.charts import Line
    
    
    chart = Line("某商场销售情况")
    chart.set_options(
        labels=["衬衫", "毛衣", "领带", "裤子", "风衣", "高跟鞋", "袜子"], 
        x_label="I'm xlabel", 
        y_label="I'm ylabel",
    )
    chart.add_series("series-A", [57, 134, 137, 129, 145, 60, 49])
    chart.add_series("series-B", [114, 55, 27, 101, 125, 27, 105])
    chart.render()

    运行后会在同目录下生成render.html

    效果如上。

    柱状图

    新建py文件

    from cutecharts.charts import Bar
    from cutecharts.components import Page
    from cutecharts.faker import Faker
    
    
    def bar_base() -> Bar:
        chart = Bar("Bar-基本示例")
        chart.set_options(labels=Faker.choose(), x_label="I'm xlabel", y_label="I'm ylabel")
        chart.add_series("series-A", Faker.values())
        return chart
    
    
    bar_base().render()
    
    
    def bar_tickcount_colors():
        chart = Bar("Bar-调整颜色")
        chart.set_options(labels=Faker.choose(), y_tick_count=10, colors=Faker.colors)
        chart.add_series("series-A", Faker.values())
        return chart
    
    
    page = Page()
    page.add(bar_base(), bar_tickcount_colors())
    page.render()

    效果

    饼状图

    新建py文件

    from cutecharts.charts import Pie
    from cutecharts.components import Page
    from cutecharts.faker import Faker
    
    
    def pie_base() -> Pie:
        chart = Pie("Pie-基本示例")
        chart.set_options(labels=Faker.choose())
        chart.add_series(Faker.values())
        return chart
    
    
    pie_base().render()
    
    
    def pie_legend_font():
        chart = Pie("Pie-Legend")
        chart.set_options(
            labels=Faker.choose(),
            legend_pos="upRight",
            font_family='"Times New Roman",Georgia,Serif;',
        )
        chart.add_series(Faker.values())
        return chart
    
    
    def pie_radius():
        chart = Pie("Pie-Radius")
        chart.set_options(labels=Faker.choose(), inner_radius=0)
        chart.add_series(Faker.values())
        return chart
    
    
    page = Page()
    page.add(pie_base(), pie_legend_font(), pie_radius())
    page.render()

    效果

    雷达图

    新建py文件

    from cutecharts.charts import Radar
    from cutecharts.components import Page
    from cutecharts.faker import Faker
    
    
    def radar_base() -> Radar:
        chart = Radar("Radar-基本示例")
        chart.set_options(labels=Faker.choose())
        chart.add_series("series-A", Faker.values())
        chart.add_series("series-B", Faker.values())
        return chart
    
    
    radar_base().render()
    
    
    def radar_legend_colors():
        chart = Radar("Radar-颜色调整")
        chart.set_options(labels=Faker.choose(), colors=Faker.colors, legend_pos="upRight")
        chart.add_series("series-A", Faker.values())
        chart.add_series("series-B", Faker.values())
        return chart
    
    
    page = Page()
    page.add(radar_base(), radar_legend_colors())
    page.render()

    效果

    散点图

    新建py文件

    from cutecharts.charts import Scatter
    from cutecharts.components import Page
    from cutecharts.faker import Faker
    
    
    def scatter_base() -> Scatter:
        chart = Scatter("Scatter-基本示例")
        chart.set_options(x_label="I'm xlabel", y_label="I'm ylabel")
        chart.add_series(
            "series-A", [(z[0], z[1]) for z in zip(Faker.values(), Faker.values())]
        )
        chart.add_series(
            "series-B", [(z[0], z[1]) for z in zip(Faker.values(), Faker.values())]
        )
        return chart
    
    
    scatter_base().render()
    
    
    def scatter_dotsize_tickcount():
        chart = Scatter("Scatter-散点大小")
        chart.set_options(dot_size=2, y_tick_count=8)
        chart.add_series(
            "series-A", [(z[0], z[1]) for z in zip(Faker.values(), Faker.values())]
        )
        chart.add_series(
            "series-B", [(z[0], z[1]) for z in zip(Faker.values(), Faker.values())]
        )
        return chart
    
    
    def scatter_show_line():
        chart = Scatter("Scatter-散点连成线")
        chart.set_options(y_tick_count=8, is_show_line=True)
        chart.add_series(
            "series-A", [(z[0], z[1]) for z in zip(Faker.values(), Faker.values())]
        )
        chart.add_series(
            "series-B", [(z[0], z[1]) for z in zip(Faker.values(), Faker.values())]
        )
        return chart
    
    
    page = Page()
    page.add(scatter_base(), scatter_dotsize_tickcount(), scatter_show_line())
    page.render()

    效果

  • 相关阅读:
    苹果一体机发射Wi-Fi
    iphone 屏蔽系统自动更新,消除设置上的小红点
    data parameter is nil 异常处理
    copy与mutableCopy的区别总结
    java axis2 webservice
    mysql 远程 ip访问
    mysql 存储过程小问题
    mysql游标错误
    is not writable or has an invalid setter method错误的解决
    Struts2中关于"There is no Action mapped for namespace / and action name"的总结
  • 原文地址:https://www.cnblogs.com/badaoliumangqizhi/p/11938481.html
Copyright © 2011-2022 走看看