我正在制作一个工具,使用Matplotlib自动化几个图表,对于我遇到的每个问题,通常在经过一些研究后我最终找到了解决方案,但在这里我认为我被卡住了。 / p>
1 - 我想要的是在生成的png文件中,在左边的图形开始之前有一种偏移,我可以插入一些文本对象。怎么办?
2 - 我还希望能够在图表下方插入文字,这样会很有用。
主要是我希望能够在图像文件中定义绘图的位置,以下是我目前have以及I want内容的示例。
编辑:
def plot_bar():
fig = plt.figure(figsize=(600/96, 360/96), dpi = 96)
# Setting the padding between the ticks' labels and the axes
mpl.rcParams['xtick.major.pad']='10'
ax = plt.gca()
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['left'].set_visible(False)
ax.spines['bottom'].set_visible(False)
ax.axes.get_yaxis().set_visible(False)
mpl.rcParams['axes.facecolor'] = 'white'
mpl.rcParams["figure.facecolor"]= 'white'
mpl.rcParams["savefig.facecolor"]= 'white'
Values1 = ( 10 , 25 , 30 , 40 )
Values2 = ( 40 , 3 , 10 , 6 )
N = 4
ind = np.arange(N)
width = 0.7
p1 = plt.bar(ind, Values1, width, color='#00A79A', ec='#00A79A')
p2 = plt.bar(ind, Values2, width, color='#8FDCD6', bottom = Values1, ec='#8FDCD6')
plt.xticks(ind+width/2., ('Fuel\n\n dollars \n\n dollars', 'Tires', 'Roadcalls', 'Maintenance') )
plt.yticks(np.arange(0,81,10))
# Removing Tick lines from axes
for tic in ax.xaxis.get_major_ticks():
tic.tick1On = tic.tick2On = False
for tic in ax.yaxis.get_major_ticks():
tic.tick1On = tic.tick2On = False
plt.savefig("fichier.png")
答案 0 :(得分:0)
尝试使用subplots_adjust
数字方法:
fig.subplots_adjust( left=0.25, bottom=0.25 )
答案 1 :(得分:0)
您可以使用subplots_adjust
添加间距。 tight_layout
还会扩展您的框以适应之前图中缺失的文字("美元")。
至于其余的情节,添加标签应该相当容易。例如,下面的for
循环会在每个条形图的顶部添加总计(类似于this demo)。
for bar in p2:
height = bar.get_height() + p1[bar.get_x()].get_height()
ax.text(bar.get_x()+bar.get_width()/2., 1.05*height, '%d'%int(height),
ha='center', va='bottom')
plt.tight_layout()
plt.subplots_adjust(left=0.3, bottom=0.3)