python - Matplotlib 与字符串的频率
问题描述
好的,所以我正在尝试创建一个比我在 R 中的“更漂亮”的图表。我想知道是否有任何简单的方法可以在一列中使用频率并在另一列中使用字符串。除了 xticks 之外,我发现的所有文档似乎都没有涉及这个主题。在 R 中,这相当简单,所以我觉得我在这里遗漏了一些东西。
在 RI 中可以简单地做到这一点:
> 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()
我只是不确定如何在这里对待“y”。
解决方案
尝试这个:
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()
推荐阅读
- sql - 使用 UNIQUE NOT NULL 列时我真的需要 PRIMARY KEY 吗?
- html - 视频未下载 HTML 视频标签
- r - 正态分布bayesAB - 负均值
- r - 使用循环序列的值创建和命名新变量
- salesforce - NLP算法可以在Force.com平台上运行吗?
- groovy - java.lang.ClassCastException:将两个数字作为字符串进行比较时抛出 geb.content.TemplateDerivedPageContent
- javascript - 如何使用 Javascript/jQuery 从 FTP 服务器强制下载而不是在 Chrome 中打开 srt 文件?
- r - 找到偶数个字符的最长单词
- javascript - 更改 contentEditable div 后如何制作可点击的链接?
- javascript - THREE.PointerLockControls 没有锁定我的指针