Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork9
Beautiful ridgeline plots in Python
License
tpvasconcelos/ridgeplot
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
ridgeplot
is a Python package that provides a simple interface for plotting beautiful and interactiveridgeline plots within the extensivePlotly ecosystem.
ridgeplot
can be installed and updated fromPyPi usingpip:
pip install -U ridgeplot
For more information, see theinstallation guide.
Take a look at thegetting started guide, which provides a quick introduction to theridgeplot
library.
The full official documentation can be found at:https://ridgeplot.readthedocs.io/en/stable/
For those in a hurry, here's a very basic example on how to quickly get started withridgeplot() function.
importnumpyasnpfromridgeplotimportridgeplotmy_samples= [np.random.normal(n/1.2,size=600)forninrange(7,0,-1)]fig=ridgeplot(samples=my_samples)fig.show()
In this example, we will try to replicate the first ridgeline plot in thisfrom Data to Viz post. The example in the post was created using the"Perception of Probability Words" dataset and the popularggridges R package. In the end, we will see how theridgeplot
Python library can be used to create a (nearly) identical plot, thanks to its extensive configuration options.
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",opacity=0.6,labels=column_names,spacing=5/9,)# And you can still update and extend the final# Plotly Figure using standard Plotly methodsfig.update_layout(height=560,width=800,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=dict(text="Assigned Probability (%)",font_size=13),showlegend=False,)# Show us the work!fig.show()
For more examples, take a look at thegetting started guide. For instance, this example demonstrates how you can also drawmultiple traces per 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,colorscale="Inferno",bandwidth=4,kde_points=np.linspace(-40,110,400),spacing=0.3,)fig.update_layout(title="Minimum and maximum daily temperatures in Lincoln, NE (2016)",height=600,width=800,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()
About
Beautiful ridgeline plots in Python
Topics
Resources
License
Code of conduct
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Contributors4
Uh oh!
There was an error while loading.Please reload this page.