我开始学习使用matplotlib
来绘制数字。
当我使用着名的iris
数据集并尝试绘制情节图时,我遇到了一个问题。
import numpy as np
import pandas as pd
import matplotlib.pylab as pl
raw = pd.read_csv('iris.csv')
data = raw.values
print data
x = data[:,0]
y = data[:,1]
pl.scatter(x,y,color = ['r','g','b'], s = [30,40,50], alpha=0.5)
pl.figure()
pl.show()
labels = set(data[:,4])
print labels
我得到了输出
...
[6.7 3.3 5.7 2.5 'Iris-virginica']
[6.7 3.0 5.2 2.3 'Iris-virginica']
[6.3 2.5 5.0 1.9 'Iris-virginica']
[6.5 3.0 5.2 2.0 'Iris-virginica']
[6.2 3.4 5.4 2.3 'Iris-virginica']
[5.9 3.0 5.1 1.8 'Iris-virginica']]
set(['Iris-virginica', 'Iris-setosa', 'Iris-versicolor'])
我只使用前两个功能,因为我不知道是否可以绘制高维数字。
超过三种颜色,而您可以从输出中看到,确实有三个标签('Iris-virginica', 'Iris-setosa', 'Iris-versicolor')
。
我想知道matplotlib如何决定使用什么颜色? 有哪些不同的颜色?
如何显示三色情节图?
答案 0 :(得分:1)
您使用pyplot.scatter获得此数字,更具体地说是使用以下代码行:
x
在上面的行中,没有关于标签的任何迹象。 y
和scatter
只是两个数字列表。
要为点着色,color=['r', 'g', 'b']
使用参数color
。如果x
的大小与y
和color
相同,则每个点都有一个定义的颜色。但如果x
小于y
和scatter
,那么color
将根据需要多次循环x = [1, 2, 3, 4, 5]
color = ['r', 'g', 'b'] becomes ['r', 'g', 'b', 'r', 'g']
。例如:
alpha
对于最后一个神秘"为什么图表上有三种以上的颜色" ,因为透明度x
设置为0.5 (所有颜色都是50%透明)。一些数据点具有相同的y
和response.json()
坐标,因此颜色重叠,看起来颜色比红色,绿色,蓝色更多。
要绘制正确的颜色,您需要使用标签信息。 Python scatter plot with colors corresponding to strings可以帮助你。