Matplotlib:与IRIS数据集在同一散点图上的多个数据集

时间:2018-09-26 01:37:33

标签: python numpy matplotlib dataset scatter

大家下午好。

首先,我知道此问题的标题与此处的标题完全相同:

MatPlotLib: Multiple datasets on the same scatter plot

第二,我对编程世界还是有点陌生​​,所以在谈到行话时请多多包涵!请毫不犹豫地纠正我,我会立即使用适当的术语解决问题。

但是,我按照链接中的示例进行操作,尽管散点图实际上确实是在同一图中绘制的,但轴(复数)被完全弄乱了。最终,我的目的是根据不同的物种用不同的颜色绘制散点图。

散点图应该看起来像...

this

...每个点的颜色因物种而异。

这是我的代码:

import unicodecsv
import matplotlib.pyplot as plt
import numpy as np

with open('../../DATA/iris.csv', 'rb') as f:
    # Make it into a list called "data".
    reader = unicodecsv.DictReader(f)
    data = list(reader)

species = list(set(data2['species']))

setosa = {'width':[], 'length':[]}
virginica = {'width':[], 'length':[]}
versicolor = {'width':[], 'length':[]}

for dataPnt in data:
    if dataPnt['species'] == species[0]:
        setosa['length'].append(dataPnt['sepal_length'])
        setosa['width'].append(dataPnt['sepal_width'])
    elif dataPnt['species'] == species[1]:
        virginica['length'].append(dataPnt['sepal_length'])
        virginica['width'].append(dataPnt['sepal_width'])
    else:
        versicolor['length'].append(dataPnt['sepal_length'])
        versicolor['width'].append(dataPnt['sepal_width'])

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)

ax.scatter(setosa['length'], setosa['width'])
ax.scatter(virginica['length'], virginica['width'])

我的散点图最终看起来像...

this

注意轴(复数)!

无论如何,我感谢您的帮助,如果我要进行任何更改,无论是针对问题本身,帖子中的术语,还是其他内容,请随时与我们联系!

我正在使用Jupyter Notebook和Spyder。

0 个答案:

没有答案