【问题标题】:How to create a scatter plot for each dataframe column如何为每个数据框列创建散点图
【发布时间】:2019-08-06 06:02:11
【问题描述】:

我正在尝试编写一些代码,以便通过尖齿创建散点图数据的动画。为了做到这一点,我有一个包含多列的数据集,其中每一列代表一个编号的时间步长。

我希望代码循环遍历 y 轴的每个时间步列并使用恒定的 x 轴,以便为每个时间步生成单独的散点图。我试图通过编写一个为 y 轴指定递增列号的 for 循环来实现这一点。

我当前的代码在我的示例数据中生成了七分之三的散点图,但返回以下错误:

IndexError: index 9 is out of bounds for axis 0 with size 9

我已经尝试过其他类似的堆栈溢出解决方案,但这并没有解决我的问题。

如果有人想使用我正在使用的数据,数据就在这里:https://www.dropbox.com/s/7vwa0lud44td2ak/test_splot_anim_noTS.csv?dl=0data file

任何帮助或建议将不胜感激。

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

data=pd.read_csv("test_splot_anim_noTS.csv") 

for n in range (6, 13):
    data.plot(kind='scatter', x='metres', y=n)
    plt.ylim(-4,4)
    plt.savefig('n.jpeg')

【问题讨论】:

    标签: python pandas matplotlib


    【解决方案1】:
     data=pd.read_csv("test_splot_anim_noTS.csv")
     for column in data.columns[1:]:
         data.plot(kind='scatter', x='metres',y=column)
         plt.ylim(-4,4)
         plt.savefig('{}.jpeg'.format(column))
    

    我可能已经做到了!

    【讨论】:

      【解决方案2】:

      panda.DataFrame.plot,单线图

      data=pd.read_csv("test_splot_anim_noTS.csv")
      data.set_index('metres', drop=True, inplace=True)
      data.plot()
      

      使用matplotlib,所有列的单图:

      import matplotlib.pyplot as plt
      
      plt.plot(data)
      plt.show()
      

      单独的散点图,保存文件:

      for col in data.columns:
          plt.scatter(data.index, data[col])
          plt.ylim(-4, 4)
          plt.savefig(f'{col}.jpeg')
          plt.show()
      

      与 Seaborn:

      for col in data.columns:
          sns.scatterplot(data.index, data[col])
          plt.ylim(-4,4)
          plt.savefig(f'{col}.jpeg')
          plt.show()
      

      【讨论】:

        猜你喜欢
        • 2020-10-12
        • 1970-01-01
        • 1970-01-01
        • 2018-10-06
        • 2020-06-23
        • 2021-03-27
        • 1970-01-01
        • 2021-12-28
        • 2013-02-13
        相关资源
        最近更新 更多