#2簇 from pandas.plotting import scatter_matrix pd.plotting.scatter_matrix(df[['商品产地', '香调', '净含量', '价格', '评价']], s=100, alpha=1, c=colors[df["cluster2"]], figsize=(10,10)) plt.suptitle("With 2 centroids initialized") plt.show()这段代码报错如下:name 'colors' is not defined
时间: 2024-01-13 17:03:31 浏览: 124
这个错误是因为在你的代码中没有定义 `colors` 这个变量。你需要先定义 `colors` 变量,然后才能在 `scatter_matrix` 函数中使用它。你可以使用以下代码来定义 `colors` 变量:
```
colors = {
0: 'red',
1: 'blue',
2: 'green'
}
```
这个代码将 `colors` 定义为一个字典,其中键是簇的编号,值是相应的颜色。你可以根据需要修改这个字典以使用不同的颜色。然后,你可以将 `colors` 变量作为 `scatter_matrix` 函数的参数,就像你在代码中所做的那样。
完整的代码如下:
```
from pandas.plotting import scatter_matrix
import matplotlib.pyplot as plt
colors = {
0: 'red',
1: 'blue',
2: 'green'
}
pd.plotting.scatter_matrix(df[['商品产地', '香调', '净含量', '价格', '评价']], s=100, alpha=1, c=colors[df["cluster2"]], figsize=(10,10))
plt.suptitle("With 2 centroids initialized")
plt.show()
```
相关问题
#2簇 from pandas.plotting import scatter_matrix colors = { 0: 'red', 1: 'blue', } pd.plotting.scatter_matrix(df[['商品产地', '香调', '净含量', '价格', '评价']], s=100, alpha=1, c=colors[df["cluster2"]], figsize=(10,10)) plt.suptitle("With 2 centroids initialized") plt.show()这段代码报错如下:'Series' objects are mutable, thus they cannot be hashed
这个错误是因为 `colors[df["cluster2"]]` 中使用了一个 `Series` 对象而不是一个可哈希的对象。`Series` 对象是可变的,因此它们不能被哈希。为了解决这个问题,你可以将 `df["cluster2"]` 转换为一个可哈希的对象,例如一个元组。你可以使用 `apply` 函数将每个值转换为一个元组,然后将结果传递给 `scatter_matrix` 函数。
以下是修改后的代码:
```
from pandas.plotting import scatter_matrix
import matplotlib.pyplot as plt
colors = {
0: 'red',
1: 'blue',
}
color_values = df["cluster2"].apply(lambda x: colors[x])
pd.plotting.scatter_matrix(df[['商品产地', '香调', '净含量', '价格', '评价']], s=100, alpha=1, c=color_values, figsize=(10,10))
plt.suptitle("With 2 centroids initialized")
plt.show()
```
在这个代码中,我们使用了 `apply` 函数将 `df["cluster2"]` 转换为一个包含颜色值的 `Series` 对象。我们使用了一个 `lambda` 函数来将每个簇的编号转换为相应的颜色值。然后,我们将这个新的 `Series` 对象传递给 `scatter_matrix` 函数。
from pandas.tools.plotting import scatter_matrix
抱歉,该行代码中的"pandas.tools.plotting"已经在新版本的pandas中被弃用。现在,您可以使用"pandas.plotting"来替换它。另外,"scatter_matrix"也已经被移动到"pandas.plotting"模块中。因此,您可以使用以下代码:
```
from pandas.plotting import scatter_matrix
```
阅读全文