【问题标题】:How to plotting a data frame with scatter plot in multiple columns by index?如何按索引在多列中绘制带有散点图的数据框?
【发布时间】:2020-02-25 14:48:26
【问题描述】:

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

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()

但是,我希望结果如下:

有人可以帮助我吗?

【问题讨论】:

  • 对不起,我没听懂你的问题,你想把每一行都画成散点图吗?
  • 是的,我想绘制算作散点图的每个值。特别是,我希望 y 轴是列中的参数,如图所示。

标签: python dataframe matplotlib scatter


【解决方案1】:

像这样试试。

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()

【讨论】:

  • 谢谢你的回答,但我想y轴应该是列名所以我们只知道每行的值而不知道频率
  • 我不明白你想要什么......对不起,你能给我举个手绘的例子吗?
  • 没关系,我上传了我的笔迹说明i.stack.imgur.com/zgnFX.jpg
【解决方案2】:

我一直在尝试绘制数据框,如下所示,我正在编写简单的代码,并且我得到了我想要做的图片。但是我需要一些建议来使 for-loop 或 boolean 应用于大数据。

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

plt.figure(figsize=(5, 6), dpi=80)
plt.plot(df1.loc[0,:],'ro', df1.loc[1,:], 'ro', df1.loc[2,:], 'ro', df1.loc[3,:], 
    'bs-', df1.loc[4,:], 'g^--', df1.loc[8,:], 'g^--')
plt.plot(df1.loc[5,:], 'ro', df1.loc[6,:], 'ro', df1.loc[7,:], 'bs-')
plt.grid()
plt.show()

enter image description here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-01
    • 2014-04-18
    • 2017-09-23
    • 2020-10-11
    • 1970-01-01
    • 2022-01-04
    • 2021-04-03
    • 1970-01-01
    相关资源
    最近更新 更多