首页 > 解决方案 > 如何使用 Matplotlib 绘制频率分布图?

问题描述

我相信你做得很好。我正在使用一个数据框,其中有两列屏幕和它的频率。我试图找出屏幕与屏幕出现频率之间的关系。现在我想知道,对于所有屏幕,作为汇总图的所有频率是什么。想象一下将所有这些频率放入一个数组中,并想研究该数组中的分布。以下是我迄今为止尝试过的代码:

data = pd.read_csv('frequency_list.csv')

new_columns = data.columns.values
new_columns[1] = 'frequency'
data.columns = new_columns

import matplotlib.pyplot as plt
 %matplotlib inline

dataset = data.head(10)
dataset.plot(x = "screen", y = "frequency", kind = "bar")
plt.show()

col_one_list = unpickled_df['screen'].tolist()

col_one_arr = unpickled_df['screen'].head(10).to_numpy()

plt.hist(col_one_arr) #gives you a histogram of your array 'a'
plt.show() #finishes out the plot

下面是我的数据框的屏幕截图,其中屏幕为一列,频率为另一列。你能帮我找出一种绘制频率分布图的方法吗?提前致谢。

在此处输入图像描述

标签: pandasmatplotlib

解决方案


条形图会起作用吗?这是一个例子:

import pandas as pd
import matplotlib.pyplot as plt

freq = [102,98,56,117]
screen = ['A','B','C','D']
df = pd.DataFrame(list(zip(screen, freq)), columns=['screen', 'freq'])

plt.bar(df.screen,df.freq)
plt.xlabel('x')
plt.ylabel('count')
plt.show()

在此处输入图像描述


推荐阅读