【愚公系列】2023年02月 Python工具集合-cutecharts图表可视化

前言

数据可视化是一种方法,可以通过图表、图形和图像的形式,将数据直观地呈现给人们。这样,人们就可以很容易地理解和分析数据,并从中获得有价值的信息。数据可视化的目的是让人们对数据有更直观的理解,并能更容易地发现数据之间的联系和模式。在商业、科学研究、教育和其他领域,数据可视化都是一种非常有用的工具。

cutecharts,这是一个纯 Python 语言编写的可视化工具,就像其名字一样,这是一个可以产生 cute 版图表的工具。

cutecharts官网:https://github.com/cutecharts/cutecharts.py

在这里插入图片描述

一、cutecharts图表可视化

1.安装包

cutecharts

在这里插入图片描述

2.柱状图

柱状图是一种可视化工具,可以帮助我们比较不同类别的数据之间的相对大小,以及观察数据之间的趋势和变化。

from cutecharts.charts import Bar, Line
from cutecharts.faker import Faker
from cutecharts.components import Page

#Faker.choose()为label、Faker.values()为值
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

page = Page()
page.add(bar_base())
page.render()

在这里插入图片描述

生成的html


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/chart.xkcd@1.1/dist/chart.xkcd.min.js"></script>
</head>
<body>
        <div id="2c3ae03d1a604ebaae4ab4b9ea196d14" class="chart-container" style="width: 800px">
        <svg id="chart_2c3ae03d1a604ebaae4ab4b9ea196d14"></svg>
    </div>
    <script>
        const svg_2c3ae03d1a604ebaae4ab4b9ea196d14 = document.querySelector('#chart_2c3ae03d1a604ebaae4ab4b9ea196d14')
        const chart_2c3ae03d1a604ebaae4ab4b9ea196d14 = new chartXkcd.Bar(svg_2c3ae03d1a604ebaae4ab4b9ea196d14, {"title": "Bar-\u57fa\u672c\u793a\u4f8b", "data": {"datasets": [{"label": "series-A", "data": [24, 76, 84, 46, 73, 21, 34]}], "labels": ["\u6cb3\u9a6c", "\u87d2\u86c7", "\u8001\u864e", "\u5927\u8c61", "\u5154\u5b50", "\u718a\u732b", "\u72ee\u5b50"]}, "xLabel": "I'm xlabel", "yLabel": "I'm ylabel", "options": {"yTickCount": 3}});
    </script>
</body>
</html>

在这里插入图片描述
效果
在这里插入图片描述

3.折线图

折线图可以用来展示数据之间的变化,帮助人们快速理解数据的趋势和关系。它们可以用来研究价格的变化,了解不同时期的销售量,分析数据及其关系等等。

from cutecharts.charts import Line
from cutecharts.components import Page
from cutecharts.faker import Faker


def line_base() -> Line:
    chart = Line("Line-基本示例")
    chart.set_options(labels=Faker.choose(), x_label="I'm xlabel", y_label="I'm ylabel")
    chart.add_series("series-A", Faker.values())
    chart.add_series("series-B", Faker.values())
    return chart

line_base().render()

在这里插入图片描述
生成的html


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/chart.xkcd@1.1/dist/chart.xkcd.min.js"></script>
</head>
<body>
    <div id="1ddb52c241e84a5f94c92ced976b516c" class="chart-container" style="width: 800px">
        <svg id="chart_1ddb52c241e84a5f94c92ced976b516c"></svg>
    </div>
    <script>
        const svg_1ddb52c241e84a5f94c92ced976b516c = document.querySelector('#chart_1ddb52c241e84a5f94c92ced976b516c')
        const chart_1ddb52c241e84a5f94c92ced976b516c = new chartXkcd.Line(svg_1ddb52c241e84a5f94c92ced976b516c, {"title": "Line-\u57fa\u672c\u793a\u4f8b", "data": {"datasets": [{"label": "series-A", "data": [146, 83, 124, 130, 102, 72, 26]}, {"label": "series-B", "data": [130, 108, 144, 92, 102, 80, 36]}], "labels": ["\u886c\u886b", "\u6bdb\u8863", "\u9886\u5e26", "\u88e4\u5b50", "\u98ce\u8863", "\u9ad8\u8ddf\u978b", "\u889c\u5b50"]}, "xLabel": "I'm xlabel", "yLabel": "I'm ylabel", "options": {"yTickCount": 3, "legendPosition": 1}});
    </script>
</body>
</html>

在这里插入图片描述

效果
在这里插入图片描述

4.饼图

饼图是一种常用的图表,可用于快速比较各个分类的相对数量或占比。它可以帮助你更容易地理解数据,并找出其中的规律和趋势。

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

在这里插入图片描述

生成的html


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/chart.xkcd@1.1/dist/chart.xkcd.min.js"></script>
</head>
<body>
    <div id="799cd9af55344a1f8eb716c9f98a8f1c" class="chart-container" style="width: 800px">
        <svg id="chart_799cd9af55344a1f8eb716c9f98a8f1c"></svg>
    </div>
    <script>
        const svg_799cd9af55344a1f8eb716c9f98a8f1c = document.querySelector('#chart_799cd9af55344a1f8eb716c9f98a8f1c')
        const chart_799cd9af55344a1f8eb716c9f98a8f1c = new chartXkcd.Pie(svg_799cd9af55344a1f8eb716c9f98a8f1c, {"title": "Pie-\u57fa\u672c\u793a\u4f8b", "data": {"datasets": [{"data": [100, 127, 23, 31, 50, 127, 146]}], "labels": ["\u886c\u886b", "\u6bdb\u8863", "\u9886\u5e26", "\u88e4\u5b50", "\u98ce\u8863", "\u9ad8\u8ddf\u978b", "\u889c\u5b50"]}, "options": {"innerRadius": 0.5, "legendPosition": 1}});
    </script>
</body>
</html>

在这里插入图片描述

效果
在这里插入图片描述

5.雷达图

雷达图是一种有效的可视化工具,可以帮助你更好地理解和比较数据。它以多边形的形式将多个变量的值显示出来,具有很好的可视化效果。

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

在这里插入图片描述

生成的html


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/chart.xkcd@1.1/dist/chart.xkcd.min.js"></script>
</head>
<body>
    <div id="6736c8e78f564ce89fb89632642cea4e" class="chart-container" style="width: 800px">
        <svg id="chart_6736c8e78f564ce89fb89632642cea4e"></svg>
    </div>
    <script>
        const svg_6736c8e78f564ce89fb89632642cea4e = document.querySelector('#chart_6736c8e78f564ce89fb89632642cea4e')
        const chart_6736c8e78f564ce89fb89632642cea4e = new chartXkcd.Radar(svg_6736c8e78f564ce89fb89632642cea4e, {"title": "Radar-\u57fa\u672c\u793a\u4f8b", "data": {"datasets": [{"label": "series-A", "data": [123, 28, 127, 38, 49, 38, 50]}, {"label": "series-B", "data": [59, 29, 37, 116, 68, 86, 24]}], "labels": ["\u5468\u4e00", "\u5468\u4e8c", "\u5468\u4e09", "\u5468\u56db", "\u5468\u4e94", "\u5468\u516d", "\u5468\u65e5"]}, "options": {"showLegend": true, "showLabel": true, "tickCount": 3, "legendPosition": 1}});
    </script>
</body>
</html>

在这里插入图片描述

效果
在这里插入图片描述

6.散点图

散点图用于表示两个变量之间的关系,可以用来帮助分析数据,发现趋势和模式,并帮助进行预测。

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

在这里插入图片描述

生成的html


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/chart.xkcd@1.1/dist/chart.xkcd.min.js"></script>
</head>
<body>
    <div id="11819ce9a80e4047a22dbd93917d41b1" class="chart-container" style="width: 800px">
        <svg id="chart_11819ce9a80e4047a22dbd93917d41b1"></svg>
    </div>
    <script>
        const svg_11819ce9a80e4047a22dbd93917d41b1 = document.querySelector('#chart_11819ce9a80e4047a22dbd93917d41b1')
        const chart_11819ce9a80e4047a22dbd93917d41b1 = new chartXkcd.XY(svg_11819ce9a80e4047a22dbd93917d41b1, {"title": "Scatter-\u57fa\u672c\u793a\u4f8b", "data": {"datasets": [{"label": "series-A", "data": [{"x": 120, "y": 144}, {"x": 112, "y": 80}, {"x": 44, "y": 66}, {"x": 90, "y": 104}, {"x": 49, "y": 105}, {"x": 75, "y": 114}, {"x": 43, "y": 116}]}, {"label": "series-B", "data": [{"x": 139, "y": 124}, {"x": 150, "y": 133}, {"x": 109, "y": 142}, {"x": 127, "y": 103}, {"x": 57, "y": 101}, {"x": 129, "y": 84}, {"x": 145, "y": 124}]}]}, "xLabel": "I'm xlabel", "yLabel": "I'm ylabel", "options": {"xTickCount": 3, "yTickCount": 3, "legendPosition": 1, "showLine": false, "dotSize": 1}});
    </script>
</body>
</html>

在这里插入图片描述

效果
在这里插入图片描述

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2023年3月5日 下午2:14
下一篇 2023年3月5日 下午2:15

相关推荐