我想用所有六种组合(萼片宽度-萼片长度)、(花瓣宽度-萼片长度)、(萼片长度-花瓣宽度)、(花瓣长度-花瓣宽度)(花瓣长度-萼片)以二维方式可视化虹膜数据集宽度)(萼片宽度-花瓣长度)基本上,这就是我到目前为止得到的:
import matplotlib
matplotlib.rcParams['figure.figsize'] = (9.0, 7.0)
data = load_iris()
pairs = [(i, j) for i in range(4) for j in range(i+1, 4)]
fig, subfigs = pyplot.subplots(2, 3, tight_layout=True)
t1 = time.time()
for (f1, f2), subfig in zip(pairs, subfigs.reshape(-1)):
根据说明,我们必须基于这对生成二维图,一次列出两个度量,以 f1 和 f2 作为度量,并创建类指示器和 legend() 以更好地可视化图形,我尝试了不同的散点图,但没有它们似乎有效。
IIUC 你的目标,最好的办法是使用函数来绘制数据,迭代可能的特征组合。
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt
iris = load_iris()
def plot_iris(f1, f2):
n_samples = len(iris.target)
for t in set(iris.target):
x = [iris.data[i,f1] for i in range(n_samples) if iris.target[i]==t]
y = [iris.data[i,f2] for i in range(n_samples) if iris.target[i]==t]
plt.scatter(x,
y,
color=['red', 'green', 'blue'][t],
label=iris.target_names[t])
plt.xlabel(iris.feature_names[f1])
plt.ylabel(iris.feature_names[f2])
plt.title('Iris Dataset')
plt.legend(iris.target_names, loc='lower right')
plt.show()
n_features = len(iris.feature_names)
pairs = [(i, j) for i in range(n_features) for j in range(i+1, n_features)]
for (f1, f2) in pairs:
plot_iris(f1, f2)
你会得到像这样的六个图:
从sklearn导入数据集 将 pandas 导入为 pd
whole_data = datasets.load_iris() 整体数据
print('数据集的完整描述: ',whole_data['DESCR'])
x_axis = Whole_data.data[:,2] # 花瓣长度 y_axis = Whole_data.data[:, 3] # 花瓣宽度
将 matplotlib.pyplot 导入为 plt
plt.scatter(x_axis, y_axis, c=whole_data.target) #c- rozróżnienie wg koloru, tu: różne kolory zgodnie z klasami plt.title("紫色:Setosa,绿色:Versicolor,黄色:Virginica") plt.show()
我选择了花瓣宽度和花瓣长度进行可视化,因为它们显示出高级相关性......为什么只有我?