Python Matplotlib:如何在表格单元格中绘制条形图?

Python Matplotlib:如何在表格单元格中绘制条形图?,python,matplotlib,charts,Python,Matplotlib,Charts,Excel具有在表格单元格内绘制数据栏的功能。 条件格式>>数据栏 请看图片 如何使用matplotlib以编程方式创建类似的结果?我认为您必须手动绘制,或者稍微调整条形图。一个简单的例子: import numpy as np import matplotlib.pylab as pl def remove_ax(): ax=pl.gca() ax.spines['right'].set_visible(False) ax.spines['top'].set_vi

Excel具有在表格单元格内绘制数据栏的功能。
条件格式>>数据栏

请看图片


如何使用matplotlib以编程方式创建类似的结果?

我认为您必须手动绘制,或者稍微调整条形图。一个简单的例子:

import numpy as np
import matplotlib.pylab as pl

def remove_ax():
    ax=pl.gca()
    ax.spines['right'].set_visible(False)
    ax.spines['top'].set_visible(False)
    ax.spines['bottom'].set_visible(False)
    ax.set_xticks([])
    ax.get_yaxis().tick_left()

names  = ['Bill','John','Mark']
weight = [155,225,180]
age    = [30,40,50]

dh = 0.8
yloc = np.arange(3) 

pl.figure()
ax=pl.subplot(121)
remove_ax()
pl.title('Weight')
pl.barh(yloc-dh/2, weight, dh, alpha=0.4)
xloc = ax.get_xlim()[-1] - 0.05 * (ax.get_xlim()[-1] - ax.get_xlim()[0])
for i in range(len(weight)):
    pl.text(xloc, yloc[i], '{}'.format(weight[i]), va='center', ha='right', size=18)
ax.set_yticks(yloc)
ax.set_yticklabels(names)
ax.tick_params(labelbottom='off')  

ax=pl.subplot(122)
remove_ax()
pl.title('Age')
pl.barh(yloc-dh/2, age, dh, alpha=0.4)
xloc = ax.get_xlim()[-1] - 0.05 * (ax.get_xlim()[-1] - ax.get_xlim()[0])
for i in range(len(weight)):
    pl.text(xloc, yloc[i], '{}'.format(age[i]), va='center', ha='right', size=18)
ax.set_yticks(yloc)
ax.tick_params(labelleft='off')  
ax.tick_params(labelbottom='off')