<ul>
<li><a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.set_index.html" rel="nofollow noreferrer">^{<cd1>}</a>作为<code>'ID'</code>,因为我们不想对该列进行计算</li>
<li>检查不等于<code>0</code>(<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.ne.html" rel="nofollow noreferrer">^{<cd4>}</a>)的项目数</li>
<li>通过<code>100</code>获取<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.mean.html" rel="nofollow noreferrer">^{<cd5>}</a>和<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.mul.html" rel="nofollow noreferrer">^{<cd6>}</a>tiply以转换为百分比</李>
<li>创建条<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.plot.html" rel="nofollow noreferrer">^{<cd8>}</a>,使用<code>rot=1</code>,否则<code>xticks</code>将是垂直的</李>
</ul>
<p>要对条形图进行注释,请执行以下操作:</p>
<ul>
<li>保存plot对象,循环通过<code>patches</code></li>
<li><code>get_height</code>(百分比值),并通过添加<code>'%'</code>符号将其格式化为适当的标签</li>
<li><code>get_x</code>位置和{<cd12>}按略大于1的因子对其进行缩放,以便标签不会与条相交</李>
</ul>
<pre><code>>>> ax = df.set_index('ID').ne(0).mean().mul(100).plot(kind='bar', rot=1)
>>> for p in ax.patches:
ax.annotate(str(p.get_height()) + ' %', (p.get_x() * 1.005, p.get_height() * 1.005))
>>> ax.figure
</code></pre>
<p>输出:</p>
<p><a href="https://i.stack.imgur.com/oDTD2.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/oDTD2.png" alt="enter image description here"/></a></p>