gpt4 book ai didi

python - Matplotlib 将所有子图的条形宽度设置为相同大小

转载 作者:行者123 更新时间:2023-12-05 04:11:35 38 4
gpt4 key购买 nike

我的下图中有 3 个子图。我将每个子图的宽度设置为 0.3,但现在条形图的大小不均匀。我如何使条形尺寸相同,同时保持两对条形之间的间距?

我的代码:

    g=['col1','col2','col3']
fig, axs = plt.subplots(1,len(g)/1,figsize = (50,20))
axs = axs.ravel()

for j,x in enumerate(g):
df_plot[x].value_counts(normalize=True).head().plot(kind='bar',ax=axs[j],position = 0, title = 'mytitle', fontsize = 30, width=0.3)
df_plot2[x].value_counts(normalize=True).head().plot(kind='bar',ax=axs[j],position = 1, color='red', width=0.3)
axs[j].title.set_size(40)
fig.tight_layout()

enter image description here

最佳答案

如果所有子图都应具有相同的大小,我们的想法是设置 x 轴的限制,使所有条形具有相同的宽度。

ax.set_xlim(-0.5,maxn-0.5)

其中 maxn 是要绘制的最大柱数。

enter image description here

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

col1 = np.random.choice(["Mon", "Tue", "Wed", "Thu", "Fri"], 100, p=[0.1, 0.4, 0.2, 0.2,0.1])
col2 = np.random.choice([0,1], 100, p=[0.4, 0.6])
col3 = np.random.choice(list("abcde"), 100, p=[0.15, 0.35, 0.1, 0.3,0.1])
df = pd.DataFrame({'col1':col1,'col2':col2,'col3':col3})


g=['col1','col2','col3']
fig, axs = plt.subplots(1,len(g)/1,figsize = (10,4))
axs = axs.ravel()

maxn = 5
for j,x in enumerate(g):
df[x].value_counts(normalize=True).head().plot(kind='bar',ax=axs[j],position = 0, title = 'mytitle', width=0.3)
df[x].value_counts(normalize=True).head().plot(kind='bar',ax=axs[j],position = 1, color='red', width=0.3)
axs[j].set_xlim(-0.5,maxn-0.5)

fig.tight_layout()
plt.show()

关于python - Matplotlib 将所有子图的条形宽度设置为相同大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42555761/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com