【问题标题】:scatter subplot for iris dataset [closed]虹膜数据集的散点图[关闭]
【发布时间】:2021-03-05 14:00:45
【问题描述】:

我是数据科学的新手。我编写了这个脚本来绘制所有不同类型的虹膜数据集散点图。尽量不要自己策划一些事情。如何优化我的代码?

'''蟒蛇

from sklearn.datasets import load_iris

import numpy as np

import pandas as pd

iris=load_iris()

list1=[]

fig, ax =plt.subplots(nrows=3,ncols=2,figsize=(10,10))

for ii in range(4):
  for jj in range(1,4):
    if ii==jj:
      break
    if ii*jj not in list1[1::2]:
      list1.extend((ii+jj,ii*jj))
    elif ii+jj in list1[::2]:
      break
    a=ii
    b=jj
    x_index=ii
    y_index=jj
    colors=['blue','red','green']
    if ii==0:
      b=b-1
    elif jj==1:
      a=a-2
      b,a=a,b
    elif ii==3:
      a=a-1
      b=b-1
      a,b=b,a
    for label , color in zip(range(len(iris.target_names)),colors):
      ax[b,a].scatter(iris.data[iris.target==label,x_index] 
              , iris.data[iris.target==label,y_index]
              , label=iris.target_names[label]
              , color=color)

    ax[b,a].set_xlabel(iris.feature_names[x_index])
    ax[b,a].set_ylabel(iris.feature_names[y_index])
    ax[b,a].legend(loc="upper right")
    fig.tight_layout()
    fig.show()

''' enter image description here 这是输出

如果是你,你会怎么写?

感谢您的帮助。

【问题讨论】:

  • 问题是什么?这是否按预期工作?您是否只是想改善代码的外观和执行?如果是这样,请使用 [CodeReview][codereview.stackexchange.com]
  • 缩进被破坏了,变量名没有给出关于变量做什么的任何信息,也没有一个注释。在当前的问题状态下,我们不知道如何为您提供帮助。

标签: python scatter-plot iris-dataset


【解决方案1】:

我会使用 pandas 的可视化或 seaborn 的。

以下内容可以在更小的空间内完成工作,但请记住,将其称为高效,你就犯了一个错误。因为效率不是绘制数据集的重要问题,尤其是在 python 中(如果我错了,请纠正我)。

import seaborn as sns
import matplotlib.pyplot as plt
from pandas.plotting import parallel_coordinates
import pandas as pd
# Parallel Coordinates
# Load the data set
iris = sns.load_dataset("iris")
parallel_coordinates(iris, 'species', color=('#556270', '#4ECDC4', '#C7F464'))
plt.show()

结果如下:

from pandas.plotting import andrews_curves
# Andrew Curves
a_c = andrews_curves(iris, 'species')
a_c.plot()
plt.show()

其情节如下图所示:

from seaborn import pairplot
# Pair Plot
pairplot(iris, hue='species')
plt.show()

这将绘制以下图:

还有另一个我认为使用最少和最重要的情节是以下情节:

from plotly.express import scatter_3d
# Plotting in 3D by plotly.express that would show the plot with capability of zooming,
# changing the orientation, and rotating
scatter_3d(iris, x='sepal_length', y='sepal_width', z='petal_length', size="petal_width",
                   color="species", color_discrete_map={"Joly": "blue", "Bergeron": "violet", "Coderre": "pink"})\
            .show()

这个会在你的浏览器中绘制并需要 HTML5,你可以用它来查看你想要的东西。下一个数字就是那个。请记住,这是一个散点图,每个球的大小都显示了petal_width 的数据,因此所有四个特征都在一个图中。

【讨论】:

    猜你喜欢
    • 2020-10-05
    • 2022-09-27
    • 1970-01-01
    • 2018-06-17
    • 2020-10-13
    • 2021-12-17
    • 2020-06-11
    • 2018-09-13
    • 2013-04-29
    相关资源
    最近更新 更多