使用mpld3保存为html文件的条形图在顶部显示x轴刻度

时间:2018-01-13 16:44:43

标签: python-3.x matplotlib mpld3

我有一个python代码,使用mpld3 save_html方法将条形图存储为html文件。但是,当我渲染html文件时,条形图在顶部显示x轴刻度,如下所示。

enter image description here

我不希望刻度显示在所有&也没有刻度标签但希望底部的x轴线。我以为我已经做了必要的步骤来防止这种情况发生。请参阅下面的代码。 我非常感谢这里的任何帮助。我在消隐。

 fig1,ax1=plt.subplots()
      dsize=fig1.get_size_inches()    
      fig1.set_size_inches((dsize[0]/2)*(1.5),(dsize[1]/2)*(1.25))

      m_colors=  ['red','green','blue','yellow','black','cyan','aqua','brown','coral','magenta','khaki','indigo','lavender','navy','olive','pink','plum','teal','tan','violet','wheat','orchid']
     bucket=['apple','banana','orange','lemon','pineapple']
     counts=[10,20,5,16,2]
     rects = ax1.bar(bucket,counts,color=m_colors)
     ax1.set_xlabel('Service Types')


ax1.set_ylabel('Anomalous Flow per Service Type')
ax1.tick_params(axis='x',which='both',bottom='off',top='off',labelbottom='off')
ax1.xaxis.set_label_position('bottom') 
for rect in rects:
    height = rect.get_height()
    ax1.text(rect.get_x() + rect.get_width()/2., 1.05*height,
            '%d' % int(height),
            ha='center', va='bottom')
#leg=ax1.legend((rects),(unique))

legend_font_props = FontProperties()
legend_font_props.set_size('xx-small')
leg=ax1.legend((rects),(bucket),loc='upper right',prop=legend_font_props)


mpld3.save_html(fig1,"test.html")

1 个答案:

答案 0 :(得分:1)

Mpld3并不能完美地重现matplotlib数字,它只是试图接近相同的外观。在这种情况下,它似乎在复制轴参数时遇到了问题。

如果替换

ax1.tick_params(axis='x',which='both',bottom='off',top='off',labelbottom='off')
ax1.xaxis.set_label_position('bottom') 

通过

ax1.set_xticks([])

结果看起来像

enter image description here

看起来很接近你想要的。