【发布时间】: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