return label_set.index(label)
data = np.loadtxt(‘iris.data’, delimiter = ‘,’, converters = { 4 : read_label })
color_set = (‘c’, ‘y’, ‘m’)
color_list = [color_set[int(label)] for label in data[:,4]]
plt.scatter(data[:,0], data[:,1], color = color_list)
plt.show()
Tips:对于三种可能的标签,分别指定一种唯一的颜色。颜色在color_set中定义,标签在label_set中定义。label_set中的第i个标签与color_set中的第i个颜色相关联。然后我们利用它们把标签列表转换成颜色列表color_list。然后只需调用plt.scatter()一次即可显示所有点及其颜色。我们也可以通过对三个不同的类别单独调用plt.scatter()来实现,但这将需要更多的代码。另外需要注意的是:如果两点有可能有相同的坐标,但有不同的标签,显示的颜色将是后绘制点的颜色,可以使用透明颜色,用来显示重叠点。
[](
)为散点图中数据点的边使用自定义颜色
与color参数控制点的颜色一样,可以使用edgecolor参数控制数据点的边的颜色。可以为每个点的边设置相同的颜色:
import numpy as np
import matplotlib.pyplot as plt
data = np.random.standard_normal((100, 2))
plt.scatter(data[:,0], data[:,1], color = ‘1.0’, edgecolor=‘r’)
plt.show()
Tips:也可以像在为每个点定义不同的颜色部分中介绍的一样为每个点的边设置不边的颜色
[](
)使用自定义颜色绘制条形图
控制绘制条形图使用的颜色与曲线图和散点图的工作原理相同,即通过可选参数color:
import numpy as np
import matplotlib.pyplot as plt
w_pop = np.array([5., 30., 45., 22.])
m_pop = np.array( [5., 25., 50., 20.])
x = np.arange(4)
plt.barh(x, w_pop, color&