AttributeError:partially initialized module ‘matplotlib.pyplot‘ has no attribute ‘scatter‘

报错信息

AttributeError: partially initialized module 'matplotlib.pyplot' has no attribute 'scatter' (most likely due to a circular import)

翻译

AttributeError:部分初始化的模块“matplotlib.pyplot”没有属性“scatter”(很可能是由于循环导入

分析

import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
from sklearn.datasets._samples_generator import make_blobs

# 生成数据
centers = [[-2,2], [2,2], [0,4]]
X,y=make_blobs(n_samples=60,centers=centers,random_state=0,cluster_std=0.60)
#画图
plt.figure(figsize=(5,3), dpi=144)
c = np.array(centers)
# 画出样本
plt.scatter(X[:,0], X[:,1], c=y, s=10,cmap='cool')
# 画出中心点
plt.scatter(c[:,0], c[:,1], s=50, marker='^',c='orange')
plt.show()

matplotlib使用的版本是 3.7.1,其他使用到的包有 numpy 1.23.5、scikit-learn 1.2.2

导入matplotlib也参考了其他博客的 import matplotlib.pyplot as plt

解决

最好检查文件命名,很有可能 自己定义的某个文件 与 Python的包名 重名

比如我的命名为six.py(乍看上去平平无奇,但其实Python里有six这个包会产生冲突...)

你可能感兴趣的:(matplotlib,python)