首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >并排定义单个子图的大小

并排定义单个子图的大小
EN

Stack Overflow用户
提问于 2020-05-15 00:28:09
回答 1查看 154关注 0票数 1

我正在并排使用子图

代码语言:javascript
运行
复制
plt.subplot(1, 2, 1)
# plot 1
plt.xlabel('MEM SET')
plt.ylabel('Memory Used')
plt.bar(inst_memory['MEMORY_SET_TYPE'], inst_memory['USED_MB'], alpha = 0.5, color = 'r')
# pol 2
plt.subplot(1, 2, 2)
plt.xlabel('MEM POOL')
plt.ylabel('Memory Used')
plt.bar(set_memory['POOL_TYPE'], set_memory['MEMORY_POOL_USED'], alpha = 0.5, color = 'g')

它们具有相同的大小-但是否可以定义每个子图的宽度,因此右边的可以更宽,因为它有更多的条目并且文本不会挤压,或者是否可以用数字替换底部的x-text并使用1:means xx 2:means yyy

EN

回答 1

Stack Overflow用户

发布于 2020-05-15 01:10:16

我发现GridSpec对子图安排很有帮助,请参阅matplotlib上的this demo

代码语言:javascript
运行
复制
import matplotlib.pyplot as plt
from matplotlib.gridspec import GridSpec
import pandas as pd
N=24

inst_memory = pd.DataFrame({'MEMORY_SET_TYPE': np.random.randint(0,3,N),
                   'USED_MB': np.random.randint(0,1000,N)})
set_memory = pd.DataFrame({'MEMORY_POOL_USED': np.random.randint(0,1000,N),
                   'POOL_TYPE': np.random.randint(0,10,N)})

fig = plt.figure()
gs = GridSpec(1, 2, width_ratios=[1, 2],wspace=0.3)
ax1 = fig.add_subplot(gs[0])
ax2 = fig.add_subplot(gs[1])

ax1.bar(inst_memory['MEMORY_SET_TYPE'], inst_memory['USED_MB'], alpha = 0.5, color = 'r')
ax2.bar(set_memory['POOL_TYPE'], set_memory['MEMORY_POOL_USED'], alpha = 0.5, color = 'g')

您可能需要调整width_ratioswspace以获得所需的布局。

此外,在x轴上旋转文本可能会有所帮助,一些信息here

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61802480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档