问题
I have a 5D array called data
for i in range(10):
sns.distplot(data[i,0,0,0], hist=False)
But I want to make them inside subplots instead. How can I do it?
Tried this:
plt.rc('figure', figsize=(4, 4))
fig=plt.figure()
fig, ax = plt.subplots(ncols=4, nrows=3)
for i in range(10):
ax[i].sns.distplot(data[i,0,0,0], hist=False)
plt.show()
This obviously doesn't work.
回答1:
You would want to use the ax
argument of the seaborn distplot
function to supply an existing axes to it. Looping can be simplified by looping over the flattened array of axes.
fig, axes = plt.subplots(ncols=4, nrows=3)
for i, ax in zip(range(10), axes.flat):
sns.distplot(data[i,0,0,0], hist=False, ax=ax)
plt.show()
回答2:
Specify which subplot each distplot
should fall on:
f = plt.figure()
for i in range(10):
f.add_subplot(4, 3, i+1)
sns.distplot(data[i,0,0,0], hist=False)
plt.show()
来源:https://stackoverflow.com/questions/53310228/how-can-i-make-seaborn-distribution-subplots-in-a-loop