【问题标题】:How To Plot A Pie Chart Using A Dictionary Of Characters and Numbers如何使用字符和数字字典绘制饼图
【发布时间】:2020-11-26 01:45:18
【问题描述】:

所以我在这里得到了一些代码,这个代码获取被承认的动物的物种,将它与分类单元相关联并计算分类单元。这是通过字典完成的,但是,当我在饼图中绘制它们时,它无法形成一个。

我确定字典是:Taxon:#N ofoccurrence,Taxon:#N ofoccurrence,等等。所以我可以将它转换为浮点数。但我尝试使用


#imports csv and mathplot
import csv
import matplotlib.pyplot as plt

#creates a correlation table as a dict
with open('species_taxon.csv', 'r', encoding = 'utf8', newline='') as f:
    cf = csv.DictReader(f)
    correlation = {row['Species']: row['Taxon'] for row in cf}

#then uses it to count the taxons
import collections
with open('Accessions-Jan-2018.csv','r', encoding = 'utf8', newline='') as f:
    cf = csv.DictReader(f)
    count = collections.Counter(correlation.get(row['species'], 'Unknown') for row in cf)
#prints the counted taxons
print(count)

当我尝试使用时

plt.pie([float(v) for v in count], labels=[float(k) for k in keys], autopct=None)

我得到了错误 ValueError: could not convert string to float: '#The name of the Taxon'

【问题讨论】:

  • 我认为问题出在按键上。您是否尝试过不将键转换为浮点数?喜欢labels=keys

标签: python csv dictionary pie-chart


【解决方案1】:
#Using matplotlib
sns.set_style("whitegrid")
pie, ax = plt.subplots(figsize=[10,6])
Labels = [k for k in methods.keys()]
Data   = [float(v) for v in methods.values()]
plt.pie(x = Data, labels=Labels, autopct="%.1f%%", pctdistance=0.5);
plt.title("Frequency of used moehods", fontsize=14);

Output pie plot

【讨论】:

  • 解释你的代码总是更好,所以任何阅读你答案的人都明白正在做什么。
【解决方案2】:

您需要在str 而不是float 中的所有标签:

plt.pie([float(v) for v in count], labels=[str(k) for k in keys], autopct=None)

【讨论】:

    猜你喜欢
    • 2020-10-17
    • 1970-01-01
    • 2021-07-01
    • 2019-10-17
    • 2020-10-09
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多