首页 > 解决方案 > 在 python 中使用 matplotlib 绘制频率线图

问题描述

我正在尝试绘制频率线图,matplotlib其中 x 轴是数量loan_amountloan_count.

我认为一般代码必须与此类似,但不确定y应该是什么以及如何完成它:

con = sqlite3.connect('databaseTest.db')
cur = con.cursor()
cur.execute("SELECT LOAN_AMOUNT FROM funded")
loan_amount = cur.fetchall()
loan_amount_list = [i[0] for i in loan_amount]

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
x = loan_amount_list

我希望最终的情节看起来像这样:

频率图

任何帮助深表感谢!谢谢!

- 编辑:

如下所示从集合中实现计数器功能会导致以下情节,这不是我的目标: 错误的情节

标签: pythonmatplotlibplotfrequency

解决方案


我不知道你的数据库中有什么,它是什么格式(如果你发布我会修改我的答案)但这是我解决这个问题的方法。

我假设 in SELECT LOAN_AMOUNT FROM fundedLOAN_AMOUNT 某种整数列。

所以:

import numpy as np
import matplotlib.pyplot as plt
loan_amount = cur.fetchall()
loan_amount = np.array(loan_amount,dtype='int') #setting up the array in numpy
x ,y  = np.unique(loan_amount, return_counts=True) # counting occurrence of each loan
plt.scatter(x,y)

如果我将一些随机分布的数据输入到此片段中,我会得到以下图片,您可能正在寻找它:

在此处输入图像描述

>>> a = np.random.rayleigh(1000,100000)
>>> a = a.astype('int')
>>> x ,y = np.unique(a,return_counts=True)
>>> plt.scatter(x,y)
<matplotlib.collections.PathCollection object at 0x7f3b18a524e0>
>>> plt.show()
>>> 

线图有点混乱,但这取决于您的数据集结果如何:

在此处输入图像描述


推荐阅读