Python-joypy和 R-ggridges 峰峦图制作
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
以下文章来源于DataCharm,作者 宁海涛
转载地址
https://www.zhihu.com/people/qi-shi-huan-hao-la-14/posts
Python-joypy 制作
Python 制作峰峦图有直接的第三方库joypy进行绘制,该库可以直接通过pip安装。可视化代码如下:
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = ['Times New Roman']
colors = ['#791E94','#58C9B9','#519D9E','#D1B6E1']
fig,axs = joypy.joyplot(data_ed, by="source",fill=True, legend=True,alpha=.8,
range_style='own',xlabelsize=22,ylabelsize=22,
grid='both', linewidth=.8,linecolor='k', figsize=(12,6),color=colors,
)ax = plt.gca()#设置x刻度为时间形式x = np.arange(6)
xlabel=['8-21','8-28','9-4','9-11','9-18','9-25']
ax.set_xlim(left=-.5,right=5.5)
ax.set_xticks(x)ax.set_xticklabels(xlabel)ax.text(.47,1.1,"Joyplot plots of media shares (TV, Online News and Google Trends)",
transform = ax.transAxes,ha='center', va='center',fontsize = 25,color='black')
ax.text(.5,1.03,"Python Joyplot Test",
transform = ax.transAxes,ha='center', va='center',fontsize = 15,color='black')
ax.text(.90,-.11,'\nVisualization by DataCharm',transform = ax.transAxes,
ha='center', va='center',fontsize = 12,color='black')
plt.savefig(r'F:\DataCharm\Artist_charts_make_python_R\joyplots\Joyplot_python.png',
width=7,height=5,dpi=900,bbox_inches='tight')
可视化结果如下:
关于 joypy库其他详细的参数设置,可以去官网(https://github.com/sbebo/joypy) 下载 Joyplot.ipynb 文件查看,最好查看所绘制数据的格式,有助于更好绘制峰峦图。
R-ggridges 绘制
借助于R语言丰富且强大的第三方绘图包,在应对不同类型图表时,机会都会有对应的包进行绘制。本次就使用ggridges包(https://wilkelab.org/ggridges/)进行峰峦图的绘制。官网的例子如下:
ggplot(lincoln_weather, aes(x = `Mean Temperature [F]`, y = Month, fill = stat(x))) +
geom_density_ridges_gradient(scale = 3, rel_min_height = 0.01, gradient_lwd = 1.) +
scale_x_continuous(expand = c(0, 0)) +
scale_y_discrete(expand = expand_scale(mult = c(0.01, 0.25))) +
scale_fill_viridis_c(name = "Temp. [F]", option = "C") +
labs(
title = 'Temperatures in Lincoln NE',
subtitle = 'Mean temperatures (Fahrenheit) by month for 2016'
) + theme_ridges(font_size = 13, grid = TRUE) +
theme(axis.title.y = element_blank())
结果如下:
这里我们没有使用 geom_density_ridges_gradient()进行绘制,使用了 geom_ridgeline() 进行类似于 山脊线 图的绘制。
绘制代码如下:
library(ggthemes)
library(hrbrthemes)plot <- ggplot(all_data, aes(x = date, y = source)) +
geom_ridgeline(aes(height = value, fill = factor(hurricane)), size = 0.1, scale = 0.8, alpha = 0.8) +
labs(title = "Ridgeline plots of media shares (TV, Online News and Google Trends)",
subtitle = "ggridges ridgeline plot test",
caption = "Visualization by DataCharm",
y = NULL,
x = NULL) +
scale_x_date(expand = c(0,0)) +
scale_fill_manual(values = c('#791E94','#58C9B9','#D1B6E1','#519D9E'),name="Hurricane")+
theme_ipsum()+
theme(text = element_text(family = 'Poppins',face = 'bold'),
axis.text.y = element_text(vjust = -2))
plot
可视化结果如下:
上述所涉及到的函数都是基本,在熟悉ggpot2 绘图体系后可以轻松理解。更多有趣的可视化作品,大家可以去官网查看。
Python-joypy和 R-ggridges 峰峦图制作的更多相关文章
- 用Python 绘制分布(折线)图
用Python 绘制分布(折线)图,使用的是 plot()函数. 一个简单的例子: # encoding=utf-8 import matplotlib.pyplot as plt from pyla ...
- python的egg包的安装和制作]
Defining Python Source Code Encodings Python egg 的安装 egg文件制作与安装 2011-06-10 14:22:50| 分类: python | ...
- (转)python中调用R语言通过rpy2 进行交互安装配置详解
python中调用R语言通过rpy2 进行交互安装配置详解(R_USER.R_HOME配置) 2018年11月08日 10:00:11 luqin_ 阅读数:753 python中调用R语言通过r ...
- Python的网络编程--思维导图
Python的网络编程--思维导图
- python逆向工程:通过代码生成类图
python逆向工程:通过代码生成类图 大致过程 现在有一个core包,里面有python的代码. 通过core包,生成python的类图,如下: 实施步骤: 1.首先安装graphviz,一个画图工 ...
- python编写微信公众号首图思路详解
前言 之前一直在美图秀秀调整自己的微信公众号首图,效果也不尽如人意,老是调来调去,最后发出来的图片被裁剪了一大部分,丢失部分关键信息,十分恼火,于是想着用python写一个程序,把微信公众号首图的模式 ...
- 跟我学Python图像处理丨基于灰度三维图的图像顶帽运算和黑帽运算
摘要:本篇文章结合灰度三维图像讲解图像顶帽运算和图像黑猫运算,通过Python调用OpenCV函数实现. 本文分享自华为云社区<[Python图像处理] 十三.基于灰度三维图的图像顶帽运算和黑帽 ...
- 干货满满:python实现二维图制作
python全代码如下 import re import csv import matplotlib.pyplot as plt x=[] y=[] m=eval(input()) #输入折线条数 f ...
- R语言---热图的制作
>install.packages("gplots") > library("gplots")> p <- data.frame(rea ...
随机推荐
- go语言之接口
一:接口的基本概念 1 接口声明 接口字面量,接口命名类型,接口声明使用interface关键字. 1)接口字面量类型声明语法如下: interface{ methodSignature1 metho ...
- JVM 垃圾收集算法 标记-清楚、标记-复制、标记-整理
摘要 Java程序在运行过程中会产生大量的对象,但是内存大小是有限的,如果光用而不释放,那内存迟早被耗尽.如C.C++程序,需要程序员手动释放内存,Java则不需要,是由垃圾回收器去自动回收. 垃圾回 ...
- 【Android】java生成炫酷验证码,不区分大小写。登陆,发送手机验证码,防止注册机,android开发
作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 微博:http://weibo.com/mcxiaobing 首先给大家看一下 ...
- Unity可视化数据:创建图表
本文由Aoi翻译,转载请注明出处.文章来自于catlikecoding,原文作者介绍了Unity制作图表.可视化数据的方法.更多的名词解释内容,请点击末尾的“原文链接”查看. 介绍 这个教程里,我 ...
- 使用代码给Unity中的动画片段绑定回调函数
在制作动作游戏的时候,需要播放许多动画,同时还有个需求,那就是动画播放到一定时间时,给一个回调函数,好做对应的状态变更, 我查了一下,发现如果使用的是unity自带的动画系统,要做到这样的话,需要这样 ...
- 面试【JAVA基础】类加载机制
1.类加载过程 1.1.加载 查找和导入class文件. 1.2.链接 验证 检验载入的class文件的正确性,完整性. 准备 给类的静态变量分配存储空间,会赋对象类型的默认值. 解析 将class常 ...
- [BUUOJ记录] [ACTF2020 新生赛]Include
本题主要考查了利用php://filter伪协议进行文件包含 进入题目根据Tip进入正题,可以看到URL中存在文件包含(题目名也很直接) 首先考虑 "php://input"伪协议 ...
- 用Python写一个随机数字生成代码,5行代码超简单
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 第一步,安装 random 库 random库是使用随机数的Python标准库 ...
- Zabbix 5.0切换中文语言小结
最近测试Zabbix 5.0,去修改语言时发现不能选择"Chinese(zh_CN)",这个选项在下拉框中是灰色的(无法选择).提示"You are not able t ...
- 将大量数据批量插入Oracle表的类,支持停止续传
之前用create table select * from XXTable无疑是创建庞大表的最快方案之一,但是数据重复率是个问题,且数据难以操控. 于是我在之前批量插数据的基础上更新了一个类,让它具有 ...