一行Python代码让图形秒变「手绘风」
今天介绍一个手绘工具(
matplotlib.pyplot.xkcd
()),一行代码可将所有Matplotlib和Seaborn绘制的图形变为手绘风格。
matplotlib.pyplot.xkcd()简介
这个Matplotlib子函数特别简单,只有三个参数,别看参数少,但功能可不小
matplotlib.pyplot.xkcd(scale=1, #相对于不使用xkcd的风格图,褶皱的幅度length=100, #褶皱长度randomness=2#褶皱的随机性)
matplotlib.pyplot.xkcd()使用
如下,加with行代码
即可,括号中参数按个人喜好决定是否设置~
with plt.xkcd(scale=1, length=100, randomness=2):
#with是临时使用一下,不影响其它图使用正常样式绘图代码。。。。。。plt.show()
matplotlib.pyplot.xkcd()使用实例
以下参考:Python可视化25|seaborn绘制矩阵图
#支持seaborn
import seaborn as sns
iris_sns = sns.load_dataset("iris")
with plt.xkcd():g = sns.pairplot(iris_sns,hue='species', #按照三种花分类palette=['#dc2624', '#2b4750', '#45a0a2'])sns.set(style='whitegrid')g.fig.set_size_inches(12, 12)sns.set(style='whitegrid', font_scale=1.5)
以下参考:Python可视化29|matplotlib-饼图(pie)
import matplotlib.pyplot as plt
with plt.xkcd(scale=4, #相对于不使用xkcd的风格图,褶皱的幅度length=120, #褶皱长度randomness=2): #褶皱的随机性plt.figure(dpi=150)patches, texts, autotexts = plt.pie(x=[1, 2, 3], #返回三个对象labels=['A', 'B', 'C'],colors=['#dc2624', '#2b4750', '#45a0a2'],autopct='%.2f%%',explode=(0.1, 0, 0))texts[1].set_size('20') #修改B的大小#matplotlib.patches.Wedgepatches[0].set_alpha(0.3) #A组分设置透明度patches[2].set_hatch('|') #C组分添加网格线patches[1].set_hatch('x')plt.legend(patches,['A', 'B', 'C'], #添加图例title="Pie Learning",loc="center left",fontsize=15,bbox_to_anchor=(1, 0, 0.5, 1))plt.title('Lovely pie', size=20)plt.show()
with plt.xkcd():from string import ascii_lettersplt.figure(dpi=150)patches, texts, autotexts = plt.pie(x=range(1, 12),labels=list(ascii_letters[26:])[0:11],colors=['#dc2624', '#2b4750', '#45a0a2', '#e87a59', '#7dcaa9', '#649E7D','#dc8018', '#C89F91', '#6c6d6c', '#4f6268', '#c7cccf'],autopct='%.2f%%',)plt.legend(patches,list(ascii_letters[26:])[0:11], #添加图例title="Pie Learning",loc="center left",bbox_to_anchor=(1, 0, 0.5, 1),ncol=2, #控制图例中按照两列显示,默认为一列显示,)
以下参考:Python可视化|matplotlib12-垂直|水平|堆积条形图详解
import matplotlib.pyplot as plt
import numpy as np
with plt.xkcd():plt.figure(dpi=150)labels = ['Jack', 'Rose', 'Jimmy']year_2019 = np.arange(1, 4)year_2020 = np.arange(1, 4) + 1bar_width = 0.4plt.bar(np.arange(len(labels)) - bar_width / 2, #为了两个柱子一样宽year_2019,color='#dc2624',width=bar_width,label='year_2019' #图例)plt.bar(np.arange(len(labels)) + bar_width / 2,year_2020,color='#45a0a2',width=bar_width,label='year_2020' #图例)plt.xticks(np.arange(0, 3, step=1), labels, rotation=45) #定义柱子名称plt.legend(loc=2) #图例在左边
以下参考: Python可视化|matplotlib10-绘制散点图scatter
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from pandas import Series, DataFrame
#数据准备
from sklearn import datasetsiris = datasets.load_iris()
x, y = iris.data, iris.target
pd_iris = pd.DataFrame(np.hstack((x, y.reshape(150, 1))),columns=['sepal length(cm)', 'sepal width(cm)','petal length(cm)', 'petal width(cm)', 'class'])
with plt.xkcd():plt.figure(dpi=150) #设置图的分辨率#plt.style.use('Solarize_Light2') #使用Solarize_Light2风格绘图iris_type = pd_iris['class'].unique() #根据class列将点分为三类iris_name = iris.target_names #获取每一类的名称colors = ['#dc2624', '#2b4750', '#45a0a2'] #三种不同颜色markers = ['$\clubsuit, '.', '+'] #三种不同图形for i in range(len(iris_type)):plt.scatter(pd_iris.loc[pd_iris['class'] == iris_type[i],'sepal length(cm)'], #传入数据xpd_iris.loc[pd_iris['class'] == iris_type[i],'sepal width(cm)'], #传入数据ys=50, #散点图形(marker)的大小c=colors[i], #marker颜色marker=markers[i], #marker形状#marker=matplotlib.markers.MarkerStyle(marker = markers[i],fillstyle='full'),#设置marker的填充alpha=0.8, #marker透明度,范围为0-1facecolors='r', #marker的填充颜色,当上面c参数设置了颜色,优先cedgecolors='none', #marker的边缘线色linewidths=1, #marker边缘线宽度,edgecolors不设置时,该参数不起作用label=iris_name[i]) #后面图例的名称取自labelplt.legend(loc='upper right')
参考: https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.xkcd.html#matplotlib.pyplot.xkcd
-END-
高质量推荐
对比Python这几种不同的编辑器/IDE优缺点,看看你最中意哪一款?
PyQuery解析网页用法入门讲解(含Python代码举例讲解+爬虫实战)
Python实现【实时】显示处理进度的6种形式(附源码和动图演示)
一行Python代码让图形秒变「手绘风」相关推荐
- 给ggplot2来个「手绘风」
本文借助xkcd在ggplot2里玩下手绘风,续前两篇: 一行Python代码让图形秒变「手绘风」 一款蠢萌蠢萌的可视化工具 xkcd主要有以下6个属性,详细功能都在后文代码里了- theme_xkc ...
- 10行Python代码让你秒变撩妹达人
做微信聊天机器人,实现步骤: 1.获取微信的使用权,即python脚本能控制微信收发信息. 2.python脚本收到聊天信息后,要对该信息进行处理,返回机器人的回应信息. 简易版代码 from wxp ...
- 浪漫的python代码_十行Python代码让你秒变撩妹达人,程序员浪漫起来就没有你们啥事了!...
做微信聊天机器人,实现步骤: 1.获取微信的使用权,即python脚本能控制微信收发信息. 2.python脚本收到聊天信息后,要对该信息进行处理,返回机器人的回应信息.我这里有一套Python从入门 ...
- python量化策略代码_手把手教你用三行python 代码做一个动量策略「量化投资系列」...
动量策略是右侧交易里最常见的,背后的逻辑是就现在涨的,后市还会涨,动量具有惯性的意思. 首先加载原始数据,我们用天的收盘价即可,按统一转为收益率.因为点位本身不重要,我们最后只关心变化率. 以沪深30 ...
- python量化投资代码_手把手教你用三行python 代码做一个动量策略「量化投资系列」...
动量策略是右侧交易里最常见的,背后的逻辑是就现在涨的,后市还会涨,动量具有惯性的意思. 首先加载原始数据,我们用天的收盘价即可,按统一转为收益率.因为点位本身不重要,我们最后只关心变化率. 以沪深30 ...
- 神操作!一行Python代码搞定一款游戏?给力!
来源:pypl编程榜 一直以来Python长期霸占编程语言排行榜前三位,其简洁,功能强大的特性使越来越多的小伙伴开始学习Python .甚至K12的同学都开始学习Python 编程.新手入门的时候趣味 ...
- resnet keras 结构_Wandb用起来,一行Python代码实现Keras模型可视化
大数据文摘出品 来源:wandb 编译:邢畅.宁静 在训练神经网络的过程中,我们可能会希望可视化网络的性能和中间的结构,很多可视化代码的冗长复杂使得我们望而却步,有没有一行代码就能解决可视化的所有问题 ...
- python可以干嘛知乎-一行Python代码能做什么?
原标题:一行Python代码能做什么? 作者:笑虎 来源:知乎 首先你要了解一下Python之禅,一行代码输出"The Zen of Python": python -c &quo ...
- python join函数_一行 Python 代码能实现这么多丧心病狂的功能?
最近看知乎上有一篇名为<一行 Python 能实现什么丧心病狂的功能?>(https://www.zhihu.com/question/37046157)的帖子,点进去发现一行Python ...
- 一行Python代码能干什么?有意思!
我下班最大的乐趣就是刷抖音 一开始刷的都是一些无聊小剧场 后来看看能不能刷一些技术上的内容 因为本人觉得Java是世界上最好的编程语言 可是我在刷抖音的时候 刷到了一行Python代码能干什么 我突然 ...
最新文章
- 将ejs转为html,Node.js Express Web应用框架ejs修改为html
- 软件测试用python一般用来做什么-如何将Python应用到实际测试工作中?
- k8s灰度更新_k8s slb如何实现灰度发布-问答-阿里云开发者社区-阿里云
- cocos2dx--cocos2dx3.1.1执行报无法解析的外部符号
- html5的交互标签,html5里交互元素的使用方法
- Kickfire Enters into MySQL Enterprise Agreement with Sun
- 使用商业模式的九大模块去分析京东的商业模式_【荐读】商业模式新生代
- 分享吴恩达机器学习视频和300页word学习笔记,以及深度学习五门课视频及700页word笔记
- php关联微信支付宝,php实现微信和支付宝支付
- themeforest 免费模板
- Linux——scp的用法
- HTML5七夕情人节表白网页(流星动画3D相册) HTML+CSS+JS 求婚 html生日快乐祝福代码网页 520情人节告白代码 程序员表白源码 3D旋转相册 js烟花代码 css爱心表白
- python2的lambda函数的基础学习
- 7-60 有志者,事竟成
- 大数据产品推荐:百融信贷决策审批系统
- 仿QQ多级折叠、展开菜单,三级下拉导航
- 样本服从正态分布,证明样本容量n乘样本方差与总体方差之比服从卡方分布x^2(n)...
- 扩散模型与生成模型详解
- MySQL - 数据库表设计 - 范式
- Windows10系统只有一个C盘,如何扩展D盘等
热门文章
- Windows 10调整色温显示器
- 公司禁用U盘的方法总结
- mysql千万测试表生成,随机id、username、age、sex、create_time
- 将matlab代码转换成C代码
- 赏析角度有哪些_从哪些角度赏析句子
- Python爬虫入门教程 25-100 知乎文章图片爬取器之一
- Raid控制器-megacli 命令简易使用介绍
- c++ 栈 stack 用法
- 光盘怎么刻录服务器系统,如何刻录系统光盘?小编手把手教你电脑Windows刻录系统光盘的方法...
- 机器学习sklearn-逻辑回归