微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Python的ggplot2实现“ plotnine”的每小时热图图?

如何解决使用Python的ggplot2实现“ plotnine”的每小时热图图?

我正在尝试从Python内部创建每小时的热图。用R制作的该图的代码示例可在以下位置找到:r-graph-gallery.com/283-the-hourly-heatmap.html。它依赖于ggplot2。

hourly heatmap

还有ggplot2的Python实现,称为plotnine:github.com/has2k1/plotnine

有人能够将R从R转换为Python吗?

解决方法

这是plotnine docs中使用小型数据集的简单娱乐。 geom_*中的大多数ggplot2元素都已实现(大多数情况下用下划线代替名称中的点)。如果您想保持直接调用R函数的geom_*风格,则只需将第一行更改为from plotnine import *

import plotnine as p9
import pandas as pd
import numpy as np

#%% Build dataset
df = pd.DataFrame({'Month':pd.Categorical(['Jan','Feb','Mar']*2*3*4,categories=['Jan','Mar']),'Year':([2004]*3+[2005]*3)*3*4,'Hour Commencing':([1]*3*2+[2]*3*2+[3]*3*2)*4,'Day':[j for i in range(1,5) for j in [i]*3*2*3]})
# Add the hourly temp as random values
df['Hourly Temps'] = np.random.randint(-10,40,size=df.shape[0])


#%% Build the plot
g = (p9.ggplot(df,p9.aes(x='Day',y='Hour Commencing',fill='Hourly Temps'))
     + p9.geom_tile(color='white',size=.1)
     + p9.facet_grid('Year~Month')
     + p9.labs(title='Hourly Temps - Station T0001')
     + p9.scale_fill_cmap('plasma')
     + p9.theme(legend_position = 'bottom',plot_title = p9.element_text(size=14),axis_text_y = p9.element_text(size=6)))
print(g)

Sample Plot

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。