Python 如何在数据帧上记录频率分布的日志图

Python 如何在数据帧上记录频率分布的日志图,python,pandas,matplotlib,Python,Pandas,Matplotlib,我正在尝试绘制一个图形,该图形应如下所示:。我有一个文本文件,其中有一个名为“dia”的列,它的直径是陨石坑的直径。我的代码生成的输出为:。我需要根据陨石坑直径绘制陨石坑大小频率分布图。我的想法是将相同的直径分组并绘制这些组,但显然这不起作用。这是我的密码: y_train = pd.read_csv('diameter.txt',sep='\t', index_col=None) df = y_train['dia'].value_counts() df.to_csv('dia.txt')

我正在尝试绘制一个图形,该图形应如下所示:。我有一个文本文件,其中有一个名为“dia”的列,它的直径是陨石坑的直径。我的代码生成的输出为:。我需要根据陨石坑直径绘制陨石坑大小频率分布图。我的想法是将相同的直径分组并绘制这些组,但显然这不起作用。这是我的密码:

y_train = pd.read_csv('diameter.txt',sep='\t', 
index_col=None)
df = y_train['dia'].value_counts()
df.to_csv('dia.txt')
df = pd.read_csv('dia.txt',sep=',', index_col=None, header=None)
plt.loglog(df[0], df[1])
你试过使用吗

import seaborn as sns
sns.boxplot(data=df, y="cumulative frequency", x="Diameter")

或者帮助绘制类别的seaborn API之一?

我尝试了您的建议,但它绘制了一个大的胖框:/这可能是因为直径变量是连续的,所以可以使用pd.cut创建直径箱,然后在箱线图中将这些箱用作x类别?