本文的文字及圖片來源于網路,僅供學習、交流使用,不具有任何商業用途,著作權歸原作者所有,如有問題請及時聯系我們以作處理,
以下文章來源于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 繪圖體系后可以輕松理解,更多有趣的可視化作品,大家可以去官網查看,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/160085.html
標籤:其他
