擅长:python、mysql、java
<p>您的代码中有几个问题:</p>
<ol>
<li>您正在尝试将每个值(例如“xx.xx%”)转换为一个数字<code>my_dict.values()</code>将所有值作为<code>dict_values</code>对象返回<code>int(my_dict.values()))</code>表示将所有值的集合转换为单个整数,而不是将每个值转换为整数。当然,前者毫无意义</李>
<li>Python无法将“12.34%”之类的内容解释为整数或浮点。您需要删除百分号,即<code>"float(12.34%"[:-1])</code></李>
<li><s> 字典是不排序的。因此,<code>my_dict.keys()</code>和<code>my_dict.values()</code>不能保证以相同的顺序返回键值对中的键和值,例如,您得到的键可能是<code>['Southampton', 'Cherbourg', 'Queenstown']</code>,而您得到的值可能是<code>"55.36%", "33.7", "38.96%"</code>。</s>这在Python中不再是问题>;=3.7和CPython 3.6;见下文@AmphotericLewisAcid的评论</李>
</ol>
<p>解决了所有这些问题后:</p>
<pre><code>keys = list(my_dict.keys())
# get values in the same order as keys, and parse percentage values
vals = [float(my_dict[k][:-1]) for k in keys]
sns.barplot(x=keys, y=vals)
</code></pre>
<p>你会得到:
<a href="https://i.stack.imgur.com/d5rXY.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/d5rXY.png" alt="enter image description here"/></a></p>