Не отображать «нулевые» значения в списке на круговой диаграмме в matplotlib [Python, Jupyter NoteBooks] - PullRequest
0 голосов
/ 05 мая 2018

Мне просто нужна помощь, чтобы не отображать «нулевые» значения на круговой диаграмме в matplotlib согласно заголовку с использованием python.

Я пытался использовать решение из Не выводить 'ноль' в matplotlib или изменить ноль на None [Python] из другого поста, но я продолжаю получать не могу преобразовать плавающий NaN в целочисленную ошибку.

Решение из другого поста:

values = [3, 5, 0, 3, 5, 1, 4, 0, 9]

def zero_to_nan(values):
    """Replace every 0 with 'nan' and return a copy."""
    return [float('nan') if x==0 else x for x in values]

print(zero_to_nan(values))

Это сокращенная версия моего кода:

#For plotting and visualization
from IPython.display import display
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

#Possible solution - however i get error cannot convert float NaN to integer 
error

sample = [innercitybypass,others,kingsfordcount] ##E.g.[0,1,2]
def zero_to_nan(sample):
    return [float('nan') if x==0 else x for x in sample]

labels = ['InnerCityBypass','OtherRds','KingsfordRd']
###sizes = [innercitybypass,others,kingsfordcount]
sizes = zero_to_nan(sample)
#Set different colors
colors = ['green','red','blue']

plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', 
startangle=140)
plt.axis('equal')
plt.show()

Любая помощь будет оценена, спасибо!

1 Ответ

0 голосов
/ 05 мая 2018

Используйте numpy.nan (убедитесь, что вы импортируете numpy)

import numpy as np

def zero_to_nan(sample):
    return [np.nan if x==0 else x for x in sample]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...