【问题标题】:How to change the color of scatter plot with pandas?如何用熊猫改变散点图的颜色?
【发布时间】:2019-01-03 12:59:26
【问题描述】:

我正在尝试通过 CSV 文件中列的值对散点图的点进行着色。我正在使用 pandas 数据框来处理该文件,并尝试使用这样的简单文件:

有了这个文件,它运行良好,但是当我尝试使用我需要的 CSV 时,这是错误:

Error: c of shape (31,) not acceptable as a color sequence for x with size 31, y with size 31

这是我用来为点着色的列:

我读取 CSV 并绘制它的功能:

       def readCSV(self):
        try:
            nombre, ok = QtWidgets.QFileDialog.getOpenFileName(self, 'Open file', "*.csv")

            if ok:
                df = pd.read_csv(nombre, delimiter=";")
                #print (df)
                ax = self.figure.add_subplot(111)
                ax.clear()
                df.groupby('Handle').plot(y='Frecuencia Inicial (MHz)', x='TOA (ns)', kind='line', ax=ax, title='Frec VS TOA')
                df.groupby('Handle').plot(y='Frecuencia Inicial (MHz)', x='TOA (ns)', kind='scatter', ax=ax, c=df['Causa DDW'])
                self.canvas.draw()

        except Exception as e:
            print("Error:", e)

我也试过了:

 df.groupby('Handle').plot(y='Frecuencia Inicial (MHz)', x='TOA (ns)', kind='scatter', ax=ax, c='Causa DDW')

但这不起作用,这是错误:

Error: 'str' object has no attribute 'shape'

我错过了什么或做错了什么?提前致谢!

【问题讨论】:

  • 您不能为 c 参数提供列名。如果您想这样做,是否可以选择使用 seaborn?
  • 我想绘制我的 csv 的两列,并通过第三列分配散点图的颜色,如果 seaborn 让我这样做,这将是一个选择!
  • 我想会的。如果您需要进一步的帮助,请考虑提供minimal reproducible example

标签: python matplotlib


【解决方案1】:

万一有人需要!我刚刚找到了一个解决方案,可能不是最好的,但它确实有效。我将该列中的所有值与地图中的颜色相关联,并将其用于“c”:

 col = df['Causa DDW'].map({'EXC': 'g', 'MOD': 'b', 'DUR': 'r'})

【讨论】:

    猜你喜欢
    • 2019-01-23
    • 2015-03-29
    • 1970-01-01
    • 1970-01-01
    • 2021-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-01
    相关资源
    最近更新 更多