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()

    效果

  • 相关阅读:
    雷霆战机
    各种 Python 库/模块/工具
    redis
    25
    为什么Python中“2==2>1”结果为True
    thinkphp3.2路由美化,url简化
    thinkphp调整框架核心目录think的位置
    thinkphp3.2中开启静态缓存后对404页面的处理方法
    thinphp中volist嵌套循环时变量$i 被污染问题,key="k"
    thinkphp中如何是实现多表查询
  • 原文地址:https://www.cnblogs.com/badaoliumangqizhi/p/11938481.html
Copyright © 2011-2022 走看看