Matplotlib с частотой строк - PullRequest
       6

Matplotlib с частотой строк

0 голосов
/ 30 апреля 2018

Хорошо. Итак, я пытаюсь создать «более симпатичный» график, чем тот, который у меня есть в R. Мне интересно, есть ли какой-нибудь простой способ использовать частоту в одном столбце и строки в другом. Кажется, что вся документация, которую я нашел, не затрагивает эту тему, кроме xticks. В R это довольно просто, поэтому я чувствую, что что-то здесь упускаю.

В R я могу просто сделать это:

> data<-read.table ("/home/myname/Desktop/hist.txt", sep="|")
> names (data)[2] = "Words"
> names (data)[1] = "Frequency"
> barplot(data$Frequency)

Где мои данные структурированы так:

3059195|and
2066278|ant
1851521|it
1741203|was

Я мог бы просто присвоить номера словам, а затем установить метки, но я стараюсь избегать ненужных обходных путей.

У кого-нибудь есть хороший минимальный пример?

Примерно так:

import matplotlib.pyplot as plt
import csv

x = []
y = []

with open('/home/shulby/Desktop/hist.txt','r') as csvfile:
    plots = csv.reader(csvfile, delimiter='|')
    for row in plots:
        x.append(int(row[0]))

plt.plot(x,y)
plt.xlabel('Words')
plt.ylabel('Frequency')
plt.title('Balanced Histogram')
plt.legend()
plt.show()

Я просто не уверен, как относиться к "у" здесь.

1 Ответ

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

Попробуйте это:

import matplotlib.pyplot as plt
import csv

x = []
y = []

with open('/home/shulby/Desktop/hist.txt','r') as csvfile:
    plots = csv.reader(csvfile, delimiter='|')
    for row in plots:
        y.append(int(row[0]))

N = len(y)
x = range(N)
plt.plot(x,y)
plt.xlabel('Words')
plt.ylabel('Frequency')
plt.title('Balanced Histogram')
plt.legend()
plt.show()
...