问题
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?
回答1:
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.
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.distplot(data, ax=ax)
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))
!
回答2:
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.
来源:https://stackoverflow.com/questions/54822884/how-to-change-the-x-axis-range-in-seaborn-in-python