在 pyplot 水平堆积条形图 (barh) 中操作顶部和底部边距
manipulating top and bottom margins in pyplot horizontal stacked bar chart (barh)
我正在尝试绘制水平堆积条形图,但在顶部和底部得到了令人讨厌的大边距。我想摆脱它或控制大小。
这是一个示例代码和图:
from random import random
Y = ['A', 'B', 'C', 'D', 'E','F','G','H','I','J', 'K']
y_pos = np.arange(len(Y))
data = [(r, 1-r) for r in [random() for i in range(len(Y))]]
print data
a,b = zip(*data)
fig = plt.figure(figsize=(8,16))
ax = fig.add_subplot(111)
ax.barh(y_pos, a,color='b',align='center')
ax.barh(y_pos, b,left=a,color='r',align='center')
ax.set_yticks(y_pos)
ax.set_yticklabels(Y, size=16)
ax.set_xlabel('X label', size=20)
plt.xlim(0,1) #removing the extra x on the right side
如果你想重新创建准确的数字,创建附图的序列采样('data'):
[(0.2180251581652276, 0.7819748418347724), (0.20639063565084814, 0.7936093643491519), (0.5402540115461549, 0.45974598845384507), (0.39283183355790896, 0.607168166442091), (0.5082547993681953, 0.4917452006318047), (0.02489004061858613, 0.9751099593814139), (0.25902114354397665, 0.7409788564560233), (0.12032683729286475 ,0.8796731627071352),(0.41578415717252204,0.584215842827478),(0.5860546662415151288,0.413945375871288,0.4139453758712)
我希望 'K' 顶部以及 x 轴和 'A' 之间的间隙小得多。
如果我将 16 更改为:
fig = plt.figure(figsize=(8,16))
到10,一切都缩小了,但利润率还是比较大。
有什么想法吗?
谢谢!
您可能希望将此行添加到脚本末尾:
plt.ylim(min(y_pos)-1, max(y_pos)+1)
这会将页边距缩小到半个栏的宽度。
我正在尝试绘制水平堆积条形图,但在顶部和底部得到了令人讨厌的大边距。我想摆脱它或控制大小。
这是一个示例代码和图:
from random import random
Y = ['A', 'B', 'C', 'D', 'E','F','G','H','I','J', 'K']
y_pos = np.arange(len(Y))
data = [(r, 1-r) for r in [random() for i in range(len(Y))]]
print data
a,b = zip(*data)
fig = plt.figure(figsize=(8,16))
ax = fig.add_subplot(111)
ax.barh(y_pos, a,color='b',align='center')
ax.barh(y_pos, b,left=a,color='r',align='center')
ax.set_yticks(y_pos)
ax.set_yticklabels(Y, size=16)
ax.set_xlabel('X label', size=20)
plt.xlim(0,1) #removing the extra x on the right side
如果你想重新创建准确的数字,创建附图的序列采样('data'):
[(0.2180251581652276, 0.7819748418347724), (0.20639063565084814, 0.7936093643491519), (0.5402540115461549, 0.45974598845384507), (0.39283183355790896, 0.607168166442091), (0.5082547993681953, 0.4917452006318047), (0.02489004061858613, 0.9751099593814139), (0.25902114354397665, 0.7409788564560233), (0.12032683729286475 ,0.8796731627071352),(0.41578415717252204,0.584215842827478),(0.5860546662415151288,0.413945375871288,0.4139453758712)
我希望 'K' 顶部以及 x 轴和 'A' 之间的间隙小得多。 如果我将 16 更改为:
fig = plt.figure(figsize=(8,16))
到10,一切都缩小了,但利润率还是比较大。
有什么想法吗? 谢谢!
您可能希望将此行添加到脚本末尾:
plt.ylim(min(y_pos)-1, max(y_pos)+1)
这会将页边距缩小到半个栏的宽度。