遍历dataframe中的每一行,并在相应的x和y列中绘制值(散点)

2024-04-20 03:10:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个这样的数据框架,每个x和y列表中有更多的变量和值:

                   x         y
variant                       
*BCDS%q3rn  [45, 59]  [18, 14]
F^W#Bfr18   [82, 76]   [12, 3]

如何迭代每个变量(每行有一个唯一的字符串)并在散点图中绘制x和y值?这将导致约40个图,这是我想要的,因此我可以为每个变量绘制一个关系。请告知。谢谢大家!


Tags: 数据字符串框架列表关系绘制variantq3rn
2条回答

您可以将每列转换为一个列表,并遍历它们进行绘图。下面我已经创建了线条图,但是您可以轻松地将代码转换为创建散点图

variants = df.index.values.tolist()
x_data = df["x"].to_numpy().tolist()
y_data = df["y"].to_numpy().tolist()

for idx in range(len(variants)):
    plt.plot(x_data[idx], y_data[idx],label= variants[idx])
plt.ylabel('Y')
plt.xlabel('X')
plt.legend()
plt.show()

对于示例数据,绘图如下所示: enter image description here

您可以遍历Pandas'DataFrame-对象的列,并使用内置的plot-函数(在引擎盖下使用Matplotlib)或直接调用Matplotlib

import pandas as pd
import matplotlib.pyplot as plt
# create random test data
import numpy as np
df = pd.DataFrame(np.random.randint(0,10,size=(10, 4)), columns=['Col 1','Col 2','Col 4','Col 5'])

fig, axs = plt.subplots(1,2)

for col in df:
    # pandas plotting
    df[col].plot(ax=axs[0])
    #matplotlib plotting
    axs[1].plot(df[col])
axs[0].set_title('pandas plotting')
axs[1].set_title('matplotlib plotting')

enter image description here

相关问题 更多 >