Python "手绘风格"数据可视化方法实例汇总
作者:Python学习与数据挖掘 发布时间:2023-01-30 03:12:23
前言
大家好,今天给大家带来绘制“手绘风格”可视化作品的小技巧,主要涉及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
来源:https://blog.csdn.net/weixin_38037405/article/details/122774123


猜你喜欢
- python中正则表达式中的匹配次数问题网上有很多解释,最多的就是*匹配0或者无数次,+匹配1次或无数次,?匹配0次或者1次。可是虽然这个文
- 一、备份数据库1、打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server2、SQL Server组-->
- 最近要做一个微信平台的投票活动,需要在关注公众号之后才能参与投票,那么,如何判断用户是否关注了公众号呢?第一想法是,通过获取公众号的关注列表
- str()将参数转换为字符串类型a = 26print('我有'+str(a)+'个苹果')输出:我有26个
- pickle 是一个 python 中, 压缩/保存/提取 文件的模块,字典和列表都是能被保存的.但必须注意的是python2以ASCII形
- pygame介绍Python Pygame 是一款专门为开发和设计 2D 电子游戏而生的软件包,它支 Windows、Linux、Mac O
- 简介这两天更新完Xcode8之后发现Xcode对图标的要求又有了变化,之前用的一个小应用“IconKit”还没赶上节奏,已经不能满足Xcod
- 前言在Python中已经内置了一个smtp邮件发送模块,Django在此基础上进行了简单地封装,让我们在Django环境中可以更方便更灵活的
- <?php //设置我们将要使用的文件 $srcurl = "http://localhost/index.php"
- 区块链概念狭义:区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码方式保证的不可篡改和不可伪造的分布式账本
- SQL Server是一种关系型数据库管理系统(RDBMS),由微软公司开发和维护。它支持结构化查询语言(SQL)和Transact-SQL
- 一、find_element_by_id()find_element_by_id()1.从上面定位到的元素属性中,可以看到有个id属性:id
- 1>保存为二进制文件,pkl格式import picklepickle.dump(data,open('file_path
- DropPath/drop_path 是一种正则化手段,其效果是将深度学习模型中的多分支结构随机”删除&ldqu
- 1.锦短情长为什么选择这个标题,借鉴了一封情书里面的情长纸短,还吻你万千。锦短情长都只谓人走茶凉,怎感觉锦短情长?一提起眼泪汪汪,是明月人心
- 应用场景在嵌入式开发中,常常需要将一个binary文件分割成多个文件,或者将一个binary的某块区域抓成一个单独文件。本篇blog以pyt
- 本文的asp xmlhttp类,使用asp的MSXML2.ServerXMLHTTP组件来获取远程音乐文件。类定义 Cls_AspHttp.
- 1. 不要让用户先注册再去选商品。顾客们是来买东西的,不是来填表单的。所以需要确保用户在付款过程中完成了注册,而不是付款前就去注册,也不是让
- AXObject可用来解决IE需要激活 ActiveX 控件和生成控件调用代码 AXObjec
- Flask或者其他框架都是封装的比较完善,我们可以不去关注路由、SESSION等到底是怎么实现的,现在我们使用socket来实现一个带有注册