从电子表格列条目定义标记和颜色?

问题描述 投票:0回答:1

我正在研究用于 RGB 分析的 3D 散点图,该图从 .xlsx[enter 获取数据点。我已将列出的可能标记和颜色设置为:

标记= [“。” , "," , "o" , "v" , "^" , "<", ">",] 颜色 = ['r','g','b','c','m','y','k']

第1页

我无法找到正确的代码来为每个数据点提取标记和颜色。

我尝试在此行中添加标记和颜色列:

由此(生成良好的图表) ax.scatter3D(df['R'], df['G'], df['B'], alpha = 0.5)

对此: fg = ax.scatter3D(df['R'], df['G'], df['B'], df['M'], 标记 = 'M', df['C'], 颜色 = ' C', 阿尔法 = 0.5)

whish 生成空图,我得到“ Syntac

但它会生成这个:

fg = ax.scatter3D(df['R'], df['G'], df['B'], df['M'], markers = 'M', df['C'], colors = 'C', alpha = 0.5)
                                                                                                            ^

语法错误:位置参数跟随关键字参数

^ 符号位于右括号下方

这是我的代码:

import seaborn as sns


import pandas as pd
import ezodf


import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation

markers = ["." , "," , "o" , "v" , "^" , "<", ">",]
colors = ['r','g','b','c','m', 'y', 'k']


sns.set_style("whitegrid", {'axes.grid' : False})


df = pd.read_excel ('/Users/stanbrown/Desktop/Plot 3D/RGB plots 1.xlsx')

print(df.head)
print(df.columns)

fig = plt.figure(figsize=(6,6))
ax = plt.axes(projection='3d')
fg = ax.scatter3D(df['R'], df['G'], df['B'], alpha = 0.5)


ax.set_xlabel('Red')
ax.set_ylabel('Green')
ax.set_zlabel('Blue')


plt.show()
python pandas matplotlib seaborn
1个回答
0
投票

您收到的错误“SyntaxError:位置参数跟随关键字参数”是因为您混淆了向

scatter3D
函数提供参数的方式。

在您的代码中,

df['M']
df['C']
被解释为位置参数,但它们位于关键字参数markers='M'之后,这是不允许的。

以下是如何通过使用循环来修复代码以正确使用 DataFrame 中的标记和颜色列,因为当您像现在一样使用标记参数时,

matplotlib
期望所有点使用单一标记样式:

import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt

sns.set_style("whitegrid", {'axes.grid' : False})

df = pd.read_excel('/Users/stanbrown/Desktop/Plot 3D/RGB plots 1.xlsx')
print(df.head)
print(df.columns)

fig = plt.figure(figsize=(6,6))
ax = plt.axes(projection='3d')

for i in range(len(df)):
    ax.scatter3D(df['R'][i], df['G'][i], df['B'][i], 
                 marker=df['M'][i], c=df['C'][i], alpha=0.5)

ax.set_xlabel('Red')
ax.set_ylabel('Green')
ax.set_zlabel('Blue')

plt.show()

应显示什么:

Output plot with different markers

© www.soinside.com 2019 - 2024. All rights reserved.