首页 > 解决方案 > 如何按索引在多列中绘制带有散点图的数据框?

问题描述

我有一个包含一些列的数据框,我想绘制每列值的频率

df = pd.DataFrame({'A': ['0','0','0','2','0','0','0','3'],
               'B': ['0','0','0','4','3','0','0','4'],
               'C': ['1','1','2','8','9','6','1','10']})
df

现在,我有解决方案代码

plt.figure(figsize=(10, 5), dpi=80)
plt.plot(df.A,'rx', df.B, 'g^--', df.C, 'bs-')
plt.show()

但是,我希望结果如下: 在此处输入图像描述

有没有人可以帮助我?

标签: pythondataframematplotlibscatter

解决方案


像这样试试。

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

import signal
signal.signal(signal.SIGINT, signal.SIG_DFL)

data = [[0,0,0,2,0,0,0,3],
       [0,0,0,4,3,0,0,4],
       [1,1,2,8,9,6,1,10]]
np_data = np.array(data)
indexes = [1,2,3,4,5,6,7,8]
columns = list('ABC')
df = pd.DataFrame(np_data.transpose(), index=indexes, columns=columns)
print(df)
df[columns] = df[columns].apply(pd.to_numeric, errors='coerce')
plt.figure()
df.plot()
plt.savefig("image.png")
plt.show()

在此处输入图像描述


推荐阅读