2 回答
TA贡献1824条经验 获得超8个赞
既然您使用 matplotlib,您是否尝试过以下操作?
plt.rcParams["figure.figsize"] = [16,9]
如果您定义了以下内容,则这是有效的:
import matplotlib.pyplot as plt
另一方面,一些提示:
提供一个开箱即用的代码
还提供所需的输入,例如我们您需要的 df
有了这两者,您将获得更好更快的答案;)
TA贡献1815条经验 获得超13个赞
使用以下代码,我能够重现您的错误。
import pandas as pd
import matplotlib.pyplot as plt
for k in range(8,10):
lablist=[j for j in range(k)]
vallist=[j for j in range(k)]
df = pd.DataFrame({'lab':lablist, 'val':vallist})
img_width=1540
n_ind=len(vallist)
leftside = (-0.0075)*(img_width-(n_ind*190)-50)/2 -n_ind*0.15
rightside = (-1)*leftside + n_ind - 1
ax = df.plot.bar(x='lab', y='val', rot=0,figsize=(10,5))
ax.set_xlim([leftside, rightside])
错误存在于leftside和rightside计算中,当条数更改时,您尝试添加的空白空间不一致。通过取 x 轴的最小值和最大值并添加一个恒定间隙,您可以对齐图的所有条形
for k in range(8,10):
lablist=[j for j in range(k)]
vallist=[j for j in range(k)]
df = pd.DataFrame({'lab':lablist, 'val':vallist})
leftside = df['lab'].min()-0.75
rightside = df['lab'].max()+0.75
ax = df.plot.bar(x='lab', y='val', rot=0,figsize=(10,5))
ax.set_xlim([leftside, rightside])
添加回答
举报