【matplotlib】绘制散点图,为不同区域的点添加不同颜色+添加纵向\横向分割线(含Python代码实例)
【matplotlib】绘制散点图,为不同区域的点添加不同颜色+添加纵向\横向分割线(含Python代码实例)
·
我们利用matplotlib绘制散点图,并且为不同的区域添加不同的颜色。
1. 为不同区域添加不同的颜色
import numpy as np
import matplotlib.pyplot as plt
x2 = list(map(int, np.random.random_sample(100) * 100))
y2 = list(map(int, np.random.random_sample(100) * 100))
split_x = split_y = 80
colors = []
for x, y in zip(x2, y2):
if x > split_x:
if y > split_y: # 第一象限
colors.append('red')
else: # 第四象限
colors.append('blue')
else:
if y > split_y: # 第二象限
colors.append('yellow')
else: # 第三象限
colors.append('green')
plt.scatter(x2, y2, c=colors)
plt.xlim([0, 100])
plt.ylim([0, 100])
plt.show()
结果展示为:
可以看到,不同区域的点的颜色不同!
2. 添加纵向、横向分割线
需要加入两行代码:
plt.plot([split_y]*100,'c--')
plt.plot([split_x]*100,list(range(0,100)),'c--')
其中,plt.plot([split_y]*100,'c--')
表示的是添加横向分隔线;plt.plot([split_x]*100,list(range(0,100)),'c--')
表示的是添加纵向分隔线。
全部代码展示如下:
import numpy as np
import matplotlib.pyplot as plt
x2 = list(map(int, np.random.random_sample(100) * 100))
y2 = list(map(int, np.random.random_sample(100) * 100))
split_x = split_y = 80
colors = []
for x, y in zip(x2, y2):
if x > split_x:
if y > split_y: # 第一象限
colors.append('red')
else: # 第四象限
colors.append('blue')
else:
if y > split_y: # 第二象限
colors.append('yellow')
else: # 第三象限
colors.append('green')
plt.plot([split_y]*100,'c--')
plt.plot([split_x]*100,list(range(0,100)),'c--')
plt.scatter(x2, y2, c=colors)
plt.xlim([0, 100])
plt.ylim([0, 100])
plt.show()
效果展示如下:
更多推荐
已为社区贡献36条内容
所有评论(0)