• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Python-joypy和 R-ggridges 峰峦图制作

python 搞java代码 3年前 (2022-05-21) 17次浏览 已收录 0个评论

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

以下文章来源于DataCharm,作者 宁海涛

转载地址

<code><span class="hljs-attribute">https:<span class="hljs-comment">//www.zhihu.<a href="https://www.gaodaima.com/tag/com" title="查看更多关于com的文章" target="_blank">com</a>/people/qi-shi-huan-hao-la-14/posts</span></span></code>

www#gaodaima.com来源gao@!dai!ma.com搞$$代^@码网搞代码

Python-joypy 制作

Python 制作峰峦图有直接的第三方库joypy进行绘制,该库可以直接通过pip安装。可视化代码如下:

<span>import</span><span> matplotlib.pyplot as plt
plt.rcParams[</span><span>"</span><span>font.family</span><span>"</span>] = [<span>"</span><span>Times New Roman</span><span>"</span><span>]
colors </span>= [<span>"</span><span>#791E94</span><span>"</span>,<span>"</span><span>#58C9B9</span><span>"</span>,<span>"</span><span>#519D9E</span><span>"</span>,<span>"</span><span>#D1B6E1</span><span>"</span><span>]
fig,axs </span>= joypy.joyplot(data_ed, by=<span>"</span><span>source</span><span>"</span>,fill=True, legend=True,alpha=.8<span>,
                         range_style</span>=<span>"</span><span>own</span><span>"</span>,xlabelsize=22,ylabelsize=22<span>,
                         grid</span>=<span>"</span><span>both</span><span>"</span>, linewidth=.8,linecolor=<span>"</span><span>k</span><span>"</span>, figsize=(12,6),color=<span>colors,
                       )ax </span>= plt.gca()<span>#</span><span>设置x刻度为时间形式x = np.arange(6)</span>
xlabel=[<span>"</span><span>8-21</span><span>"</span>,<span>"</span><span>8-28</span><span>"</span>,<span>"</span><span>9-4</span><span>"</span>,<span>"</span><span>9-11</span><span>"</span>,<span>"</span><span>9-18</span><span>"</span>,<span>"</span><span>9-25</span><span>"</span><span>]
ax.set_xlim(left</span>=-.5,right=5.5<span>)
ax.set_xticks(x)ax.set_xticklabels(xlabel)ax.text(.</span>47,1.1,<span>"</span><span>Joyplot plots of media shares (TV, Online News and Google Trends)</span><span>"</span><span>,
        transform </span>= ax.transAxes,ha=<span>"</span><span>center</span><span>"</span>, va=<span>"</span><span>center</span><span>"</span>,fontsize = 25,color=<span>"</span><span>black</span><span>"</span><span>)
ax.text(.</span>5,1.03,<span>"</span><span>Python Joyplot Test</span><span>"</span><span>,
        transform </span>= ax.transAxes,ha=<span>"</span><span>center</span><span>"</span>, va=<span>"</span><span>center</span><span>"</span>,fontsize = 15,color=<span>"</span><span>black</span><span>"</span><span>)
ax.text(.</span>90,-.11,<span>"</span><span>
Visualization by DataCharm</span><span>"</span>,transform =<span> ax.transAxes,
        ha</span>=<span>"</span><span>center</span><span>"</span>, va=<span>"</span><span>center</span><span>"</span>,fontsize = 12,color=<span>"</span><span>black</span><span>"</span><span>)
plt.savefig(r</span><span>"</span><span>F:DataCharmArtist_charts_make_<a href="https://www.gaodaima.com/tag/python" title="查看更多关于python的文章" target="_blank">python</a>_RjoyplotsJoyplot_python.png</span><span>"</span><span>,
            width</span>=7,height=5,dpi=900,bbox_inches=<span>"</span><span>tight</span><span>"</span>)

 

可视化结果如下:

 

关于 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))) +<span>
  geom_density_ridges_gradient(scale </span>= 3, rel_min_height = 0.01, gradient_lwd = 1.) +<span>
  scale_x_continuous(expand </span>= c(0, 0)) +<span>
  scale_y_discrete(expand </span>= expand_scale(mult = c(0.01, 0.25))) +<span>
  scale_fill_viridis_c(name </span>= <span>"</span><span>Temp. [F]</span><span>"</span>, option = <span>"</span><span>C</span><span>"</span>) +<span>
  labs(
    title </span>= <span>"</span><span>Temperatures in Lincoln NE</span><span>"</span><span>,
    subtitle </span>= <span>"</span><span>Mean temperatures (Fahrenheit) by month for 2016</span><span>"</span><span>
  ) </span>+  theme_ridges(font_size = 13, grid = TRUE) +<span> 
  theme(axis.title.y </span>= element_blank())

 

结果如下:

 

这里我们没有使用 geom_density_ridges_gradient()进行绘制,使用了 geom_ridgeline() 进行类似于 山脊线 图的绘制。

绘制代码如下:

<span>library(ggthemes)
library(hrbrthemes)plot </span><- ggplot(all_data, aes(x = date, y = source)) +<span>
  geom_ridgeline(aes(height </span>= value, fill = factor(hurricane)), size = 0.1, scale = 0.8, alpha = 0.8) +<span>
  labs(title </span>= <span>"</span><span>Ridgeline plots of media shares (TV, Online News and Google Trends)</span><span>"</span><span>,
       subtitle </span>= <span>"</span><span>ggridges ridgeline plot test</span><span>"</span><span>,
       caption </span>= <span>"</span><span>Visualization by DataCharm</span><span>"</span><span>,
       y </span>=<span> NULL,
       x </span>= NULL) +<span>
  scale_x_date(expand </span>= c(0,0)) +<span>
  scale_fill_manual(values </span>= c(<span>"</span><span>#791E94</span><span>"</span>,<span>"</span><span>#58C9B9</span><span>"</span>,<span>"</span><span>#D1B6E1</span><span>"</span>,<span>"</span><span>#519D9E</span><span>"</span>),name=<span>"</span><span>Hurricane</span><span>"</span>)+<span>
  theme_ipsum()</span>+<span>
  theme(text </span>= element_text(family = <span>"</span><span>Poppins</span><span>"</span>,face = <span>"</span><span>bold</span><span>"</span><span>),
        axis.text.y </span>= element_text(vjust = -2<span>))
plot</span>

 

可视化结果如下:

 

上述所涉及到的函数都是基本,在熟悉ggpot2 绘图体系后可以轻松理解。更多有趣的可视化作品,大家可以去官网查看。

 


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python-joypy和 R-ggridges 峰峦图制作

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址