与这个问题非常相似,但不同之处在于我的身材可以达到需要的大小.
我需要在matplotlib中生成一堆垂直堆叠的图.结果将使用figsave保存并在网页上查看,因此我不关心最终图像的高度,只要子图间隔开,这样它们就不会重叠.
无论我有多大的数字,子图总是似乎重叠.
我的代码目前看起来像
import matplotlib.pyplot as plt
import my_other_module
titles, x_lists, y_lists = my_other_module.get_data()
fig = plt.figure(figsize=(10,60))
for i, y_list in enumerate(y_lists):
plt.subplot(len(titles), 1, i)
plt.xlabel("Some X label")
plt.ylabel("Some Y label")
plt.title(titles[i])
plt.plot(x_lists[i],y_list)
fig.savefig('out.png', dpi=100)
Run Code Online (Sandbox Code Playgroud) 我对这段代码的工作原理有点困惑:
fig, axes = plt.subplots(nrows=2, ncols=2)
plt.show()
Run Code Online (Sandbox Code Playgroud)
在这种情况下,无花果轴如何工作?它有什么作用?
为什么这不能做同样的事情:
fig = plt.figure()
axes = fig.subplots(nrows=2, ncols=2)
Run Code Online (Sandbox Code Playgroud)
谢谢
我有一个带有分类数据的数据框:
colour direction
1 red up
2 blue up
3 green down
4 red left
5 red right
6 yellow down
7 blue down
Run Code Online (Sandbox Code Playgroud)
我想生成一些图表,如基于类别的饼图和直方图.是否可以不创建虚拟数字变量?就像是
df.plot(kind='hist')
Run Code Online (Sandbox Code Playgroud) 我正在使用for循环为数据框df创建多个分类图:
object_bol = df.dtypes == 'object'
for catplot in df.dtypes[object_bol].index:
sns.countplot(y=catplot,data=df)
plt.show()
Run Code Online (Sandbox Code Playgroud)
输出是所有图一个接一个地排序,如何将其分配给具有n列和m行的网格(n和m取决于数据帧中对象的数量)?