Python "手绘风格"数据可视化方法实例汇总

 更新时间:2022年02月10日 09:32:36   作者:Python学习与数据挖掘  
这篇文章主要给大家介绍了关于Python "手绘风格"数据可视化方法实现的相关资料,本文分别给大家带来了Python-matplotlib手绘风格图表绘制、Python-cutecharts手绘风格图表绘制以及Python-py-roughviz手绘风格图表绘制,需要的朋友可以参考下

前言

大家好,今天给大家带来绘制“手绘风格”可视化作品的小技巧,主要涉及Python编码绘制。主要内容如下:

Python-matplotlib 手绘风格图表绘制

Python-cutecharts 手绘风格图表绘制

Python-py-roughviz 手绘风格图表绘制

Python-matplotlib 手绘风格图表绘制

使用Python进行可视化绘制,首先想到的当然是Matplotlib,“手绘风格”的图表绘制方法当然首选它。在Matplotlib中,matplotlib.pyplot.xkcd() 绘图函数就可以进行手绘风图表的绘制,下面小编通过具体样例进行展示:

样例一:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

with plt.xkcd():
    fig, ax = plt.subplots(figsize=(6.5,4),dpi=100)
    ax = df.plot.bar(color=["#BC3C28","#0972B5"],ec="black",rot=15,ax=ax)
    ax.set_ylim((0, 100))
    ax.legend(frameon=False)
    ax.set_title("EXAMPLE01 OF MATPLOTLIB.XKCD()",pad=20)
    ax.text(.8,-.22,'Visualization by DataCharm',transform = ax.transAxes,
            ha='center', va='center',fontsize = 10,color='black')

图片

Example01 of matplotlib.xkcd()

样例二:

df = pd.DataFrame({
    'x': [1, 2, 2.5, 3, 3.5, 4, 5],
    'y': [4, 4, 4.5, 5, 5.5, 6, 6],
})

with plt.xkcd():
    fig, ax = plt.subplots(figsize=(6.5,4),dpi=100)
    ax = df.plot.kde(color=["#BC3C28","#0972B5"],ax=ax)
    ax.set_ylim((0, 0.4))
    ax.legend(frameon=False)
    ax.set_title("EXAMPLE02 OF MATPLOTLIB.XKCD()",pad=20)
    ax.text(.8,-.22,'Visualization by DataCharm',transform = ax.transAxes,
            ha='center', va='center',fontsize = 10,color='black')

图片

Example02 of matplotlib.xkcd()

样例三:

with plt.xkcd():
    fig, ax = plt.subplots(figsize=(6.5,4),dpi=100)
    ax.spines["right"].set_color('none')
    ax.spines["top"].set_color('none')
    ax.set_xticks([])
    ax.set_yticks([])
    ax.set_ylim([-30, 10])
    data = np.ones(100)
    data[70:] -= np.arange(30)
    ax.annotate(
        'THE DAY I REALIZED\nI COULD COOK BACON\nWHENEVER I WANTED',
        xy=(70, 1), arrowprops=dict(arrowstyle='->'), xytext=(15, -10))

    ax.plot(data,color="#BC3C28")

    ax.set_xlabel('time')
    ax.set_ylabel('my overall health')
    ax.set_title("EXAMPLE03 OF MATPLOTLIB.XKCD()")
    ax.text(.8,-.15,'Visualization by DataCharm',transform = ax.transAxes,
            ha='center', va='center',fontsize = 10,color='black')

图片

Example03 of matplotlib.xkcd()

Python-cutecharts 手绘风格图表绘制

介绍完使用matplotlib绘制后,小编再介绍一个专门绘制“手绘风格”图表的Python可视化库-cutecharts。这个包可能有的小伙伴也有了解过,如果熟悉pyecharts的同学肯定会更加快速上手的。官网如下:https://github.com/cutecharts/cutecharts.py 。这里小编就直接列举几个例子,感兴趣的同学可自行探索哈~

样例一:

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


def bar_base() -> Bar:
    chart = Bar("Bar-cutecharts基本示例01")
    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_notebook()

注:render_notebook()方法可使绘图结果在jupyter notebook 中显示。

图片

样例二:

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


def line_base() -> Line:
    chart = Line("Line-cutecharts基本示例02")
    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_notebook()

图片

Example02 of cutecharts

样例三:

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


def pie_base() -> Pie:
    chart = Pie("Pie-cutecharts基本示例03")
    chart.set_options(labels=Faker.choose(),legend_pos="upRight")
    chart.add_series(Faker.values())
    return chart

pie_base().render_notebook()

图片

Example03 of cutecharts

这里这是基本的图表绘制,实现定制化的属性参数也都没有介绍,小伙伴们可去官网查阅(由于没详细的官方文档,大家可参考样例和pyecharts的文档)

Python-py-roughviz 手绘风格图表绘制

这个和cutecharts包一样,都是基于roughViz.js转换编码绘制的,官网为:https://github.com/charlesdong1991/py-roughviz 。由于所支持的图表类型不是很多且各个图标设置的参数也不够完善,这里小编直接给出两个样例,感兴趣的小伙伴可自行探索哈~

样例一:

from roughviz.charts.bar import Bar
data = {
    "labels": ["North", "South", "East", "West"],
    "values": [10, 5, 8, 3]
}

bar = Bar(data=data, title="Bar-roughviz基本示例01", title_fontsize=3)
bar.set_options(xlabel="Region", ylabel="Number", color="orange")
bar.show()

图片

Example01 of roughviz

样例二:

from roughviz.charts.donut import Donut
donut = Donut(data={"labels": ['a', 'b'], "values": [10, 20]}, title="Donut-roughviz基本示例02", title_fontsize=3)
donut.show()

图片

Example02 of roughviz

总结

到此这篇关于Python "手绘风格"数据可视化方法的文章就介绍到这了,更多相关Python 手绘风格数据可视化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python3之Splash的具体使用

    python3之Splash的具体使用

    Splash是一个javascript渲染服务。本文主要介绍了python3之Splash的具体使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • TensorFlow 实战之实现卷积神经网络的实例讲解

    TensorFlow 实战之实现卷积神经网络的实例讲解

    下面小编就为大家分享一篇TensorFlow 实战之实现卷积神经网络的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • numpy中np.dstack()、np.hstack()、np.vstack()用法

    numpy中np.dstack()、np.hstack()、np.vstack()用法

    numpy里dstack, hstack, vstack, 都有拼接的作用,本文详细的介绍了np.dstack()、np.hstack()、np.vstack()用法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • python特性语法之遍历、公共方法、引用

    python特性语法之遍历、公共方法、引用

    这篇文章主要介绍了python特性语法之遍历、公共方法、引用的相关资料,需要的朋友可以参考下
    2018-08-08
  • 关于python并发编程中的协程

    关于python并发编程中的协程

    协程是一种轻量级的并发方式,它是在用户空间中实现的,并不依赖于操作系统的调度,协程可以在同一个线程中实现并发,不需要进行上下文切换,因此执行效率非常高,需要的朋友可以参考下
    2023-04-04
  • python引入其他文件夹下的py文件具体方法

    python引入其他文件夹下的py文件具体方法

    在本篇文章里小编给大家整理的是一篇关于python引入其他文件夹下的py文件具体方法,有兴趣朋友们可以跟着学习参考下。
    2021-05-05
  • Python中使用__hash__和__eq__方法的问题

    Python中使用__hash__和__eq__方法的问题

    这篇文章主要介绍了Python中使用__hash__和__eq__方法的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • pandas将DataFrame的几列数据合并成为一列

    pandas将DataFrame的几列数据合并成为一列

    本文主要介绍了pandas将DataFrame的几列数据合并成为一列,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • Python 防止死锁的方法

    Python 防止死锁的方法

    这篇文章主要介绍了Python 防止死锁的方法,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • 基于Python函数的作用域规则和闭包(详解)

    基于Python函数的作用域规则和闭包(详解)

    下面小编就为大家分享一篇基于Python函数的作用域规则和闭包详解,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-11-11

最新评论