Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to change the X axis range in seaborn

By default the seaborn displaces the X axis ranges from -5 to 35 in distplots. But I need to display the distplots with the X axis ranges from 1 to 30 with 1 unit. How can I do that?

like image 392
Nandhakumar Rajendran Avatar asked Feb 22 '19 08:02

Nandhakumar Rajendran


People also ask

How do you set Xticks in Seaborn?

set_xticks() and Axes. set_yticks() functions in axes module of matplotlib library are used to Set the ticks with a list of ticks on X-axis and Y-axis respectively. Parameters: ticks: This parameter is the list of x-axis/y-axis tick locations.


2 Answers

For the most flexible control with these kind of plots, create your own axes object then add the seaborn plots to it. Then you can perform the standard matplotlib changes to features like the x-axis, or use any of the normal controls available through the matplotlib API.

Tested in python 3.8.12, matplotlib 3.4.3, seaborn 0.11.2

import matplotlib.pyplot as plt
import seaborn as sns

data = [5,8,12,18,19,19.9,20.1,21,24,28] 

fig, ax = plt.subplots()
sns.histplot(data, ax=ax)  # distplot is deprecate and replaced by histplot
ax.set_xlim(1,31)
ax.set_xticks(range(1,32))
plt.show()

With the ax and fig object exposed, you can edit the charts to your heart's content now, and easily do stuff like changing the size with fig.set_size_inches(10,8))!

enter image description here

like image 74
fordy Avatar answered Sep 28 '22 16:09

fordy


I do not know if this is what you are looking for but I believe so:

import matplotlib.pyplot as plt
import seaborn as sns
tips = sns.load_dataset("tips")
sns.set_style("whitegrid")
g = sns.lmplot(x="tip", y="total_bill", data=tips,
 aspect=2)
g = (g.set_axis_labels("Tip","Total bill(USD)").
set(xlim=(0,15),ylim=(0,100)))
plt.title("title")
plt.show(g)

As you can see, the key part is the xlim=(0,15) where you specify the range you want to have. In your case:

xlim=(1,30)

I took it from here.

like image 20
luis.galdo Avatar answered Sep 28 '22 15:09

luis.galdo