Гистограмма с подсчетом строковых переменных в matplotlib [duplicate]

Как будто вы пытаетесь получить доступ к объекту, который является null. Рассмотрим ниже пример:

TypeA objA;

. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException, что имеет смысл.

См. Также этот пример:

String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
33
задан Joshua Dwire 5 October 2013 в 15:39
поделиться

2 ответа

Для ваших данных, вероятно, лучше использовать барьер вместо гистограммы. Проверьте этот код:

from collections import Counter
import numpy as np
import matplotlib.pyplot as plt


labels, values = zip(*Counter(['A','B','A','C','A','A']).items())

indexes = np.arange(len(labels))
width = 1

plt.bar(indexes, values, width)
plt.xticks(indexes + width * 0.5, labels)
plt.show()

Результат: enter image description here [/g0]

46
ответ дан Igonato 18 August 2018 в 23:06
поделиться
  • 1
    Что, если данные OP лучше всего подходят для гистограммы? Я знаю, что поздно в игре, но я хотел бы обновить ваш ответ, чтобы применить пример гистограммы (но я не уверен, как это сделать). Это ответит на заголовок вопроса. – Thomas Matthew 16 May 2016 в 15:49
  • 2
    @ThomasMatthew технически, это гистограмма. «barchart вместо гистограммы». больше относится к использованию matplotlib.pyplot.bar вместо matplotlib.pyplot.hist. Я считаю, bar улучшается с Counter (чего хочет OP), вот и все – Igonato 16 May 2016 в 22:55
  • 3
    Также это трехлетний вопрос, который может измениться – Igonato 16 May 2016 в 22:55
  • 4
    @ThomasMatthew, как вы добрались туда, что искали? Он высоко оценивает Google? Какой запрос? Если он показывает что-то отличное от python Counter matplotlib, возможно, имеет смысл отредактировать ответ – Igonato 16 May 2016 в 22:57
  • 5
    Я искал «построить гистограмму из счетчика». и это результат # 1 поиска Google. Это также почти то же название вопроса OP. Это стоит обновления для всех людей, которые ищут этот запрос, что может быть высоким процентом просмотров по этому вопросу. Вы можете получить больше голосов и фаворитов, которые вы обновляете (добавляете) пример гистограммы – Thomas Matthew 17 May 2016 в 03:11

Вы можете написать какой-нибудь очень сжатый код, чтобы сделать это, используя pandas :

In [24]: import numpy as np

In [25]: from pandas import Series

In [27]: sample = np.random.choice(['a', 'b'], size=10)

In [28]: s = Series(sample)

In [29]: s
Out[29]:
0    a
1    b
2    b
3    b
4    a
5    b
6    b
7    b
8    b
9    a
dtype: object

In [30]: vc = s.value_counts()

In [31]: vc
Out[31]:
b    7
a    3
dtype: int64

In [32]: vc = vc.sort_index()

In [33]: vc
Out[33]:
a    3
b    7
dtype: int64

In [34]: vc.plot(kind='bar')

Результат:

enter image description here [/g1]

12
ответ дан mvelay 18 August 2018 в 23:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: