Python-joypy 制作
Python 制作峰峦图有直接的第三方库joypy进行绘制,该库可以直接通过pip安装。可视化代码如下:
importmatplotlib.pyplotaspltplt.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')
可视化结果如下:
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,一起走上人生的巅峰。
网友评论