Package: ridgeplot
ridgeplot: beautiful ridgeline plots in Python______________________________________________________________________ridgeplotis a Python package that provides a simple interface for plotting beautiful and interactiveridgeline plotswithin the extensivePlotlyecosystem.Installationridgeplotcan be installed and updated fromPyPiusingpip:pipinstall-UridgeplotFor more information, see theinstallation guide.Getting startedTake a look at thegetting started guide, which provides a quick introduction to theridgeplotlibrary.The full official documentation can be found at:https://ridgeplot.readthedocs.io/en/stable/Basic exampleThis basic example gets you started with a simple call to theridgeplot()function.importnumpyasnpfromridgeplotimportridgeplotmy_samples=[np.random.normal(n/1.2,size=600)forninrange(8,0,-1)]fig=ridgeplot(samples=my_samples)fig.update_layout(height=450,width=800)fig.show()Flexible configurationIn this example, we will be replicating the first ridgeline plot example in thisfrom Data to Vizpost, which uses the"Perception of Probability Words"dataset.importnumpyasnpfromridgeplotimportridgeplotfromridgeplot.datasetsimportload_probly# Load the probly datasetdf=load_probly()# Let's grab the subset of columns used in the examplecolumn_names=["Almost Certainly","Very Good Chance","We Believe","Likely","About Even","Little Chance","Chances Are Slight","Almost No Chance",]df=df[column_names]# Not only does 'ridgeplot(...)' come configured with sensible defaults# but is also fully configurable to your own style and preference!fig=ridgeplot(samples=df.to_numpy().T,bandwidth=4,kde_points=np.linspace(-12.5,112.5,500),colorscale="viridis",colormode="row-index",coloralpha=0.65,labels=column_names,linewidth=2,spacing=5/9,)# And you can still update and extend the final# Plotly Figure using standard Plotly methodsfig.update_layout(height=760,width=900,font_size=16,plot_bgcolor="white",xaxis_tickvals=[-12.5,0,12.5,25,37.5,50,62.5,75,87.5,100,112.5],xaxis_ticktext=["","0","","25","","50","","75","","100",""],xaxis_gridcolor="rgba(0, 0, 0, 0.1)",yaxis_gridcolor="rgba(0, 0, 0, 0.1)",yaxis_title="Assigned Probability (%)",showlegend=False,)# Show us the work!fig.show()More examplesFor more examples, take a look at thegetting started guide. For instance, this example demonstrates how you can also drawmultiple tracesper row in your ridgeline plot:importnumpyasnpfromridgeplotimportridgeplotfromridgeplot.datasetsimportload_lincoln_weather# Load test datadf=load_lincoln_weather()# Transform the data into a 3D (ragged) array format of# daily min and max temperature samples per monthmonths=df.index.month_name().unique()samples=[[df[df.index.month_name()==month]["Min Temperature [F]"],df[df.index.month_name()==month]["Max Temperature [F]"],]formonthinmonths]# And finish by styling it up to your liking!fig=ridgeplot(samples=samples,labels=months,coloralpha=0.98,bandwidth=4,kde_points=np.linspace(-25,110,400),spacing=0.33,linewidth=2,)fig.update_layout(title="Minimum and maximum daily temperatures in Lincoln, NE (2016)",height=650,width=950,font_size=14,plot_bgcolor="rgb(245, 245, 245)",xaxis_gridcolor="white",yaxis_gridcolor="white",xaxis_gridwidth=2,yaxis_title="Month",xaxis_title="Temperature [F]",showlegend=False,)fig.show()