matplotlib.pyplot 绘制带有双图例分类的散点图

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches

# Sample data
x = [1, 2, 3]
y_star = [2, 3, 4]
y_h = [3, 4, 5]
colors_star = ['red', 'blue', 'black']
colors_h = ['red', 'blue', 'black']

# Create a colormap
cmap_star = plt.cm.colors.ListedColormap(colors_star)

# Plot the figure with two y-axis arrays
plt.figure()

# Plot markers '*' with different colors
scatter_star = plt.scatter(x, y_star, marker='*', c=np.arange(len(x)), cmap=cmap_star, label='commu')

# Create legend for colors with rectangles
legend_handles = [mpatches.Patch(color=color, label=label) for color, label in zip(colors_star, ['DQN', 'MPNN', 'OSPF'])]
legend_colors_star = plt.legend(handles=legend_handles, loc="upper left", title="Colors (*)")
plt.gca().add_artist(legend_colors_star)

# Plot markers 'h' with different colors
scatter_h = plt.scatter(x, y_h, marker='h', c=np.arange(len(x)), cmap=cmap_star)

# Create legend for markers
legend_markers = plt.legend(handles=[scatter_star, scatter_h], labels=['commu', 'compute'], loc="upper right", title="Legends")

# Set color of legend handles to black
for handle in legend_markers.legendHandles:
    handle.set_facecolor('black')

# Add labels and title
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Scatter Figure with Two Legend Bars')

# Show plot
plt.show()

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值