python - 散点图,其中 y 是分类的,x 是集合列表
问题描述
我想要一个y轴是分类的图,例如
classes = ["A","B","C","D","E"]
x轴是数字列表
nums = [1,2,3,4,5,6,7,8,9]
现在每个数字都可以有一个对应的集合
dic =
{
1: {"A", "B"},
2: {"D"},
3: {"C", "D", "E"},
4: {},
...
}
对于每个数字,如果存在,我想为相应的类绘制一个散点。像这样的东西。如何使用 matplotlib 实现它?
我尝试了很多,例如:
plt.scatter(x=dic, y=classes)
plt.show()
但它不适用于错误 ValueError: x and y must be the same size
解决方案
您需要创建一个点列表才能使用散点图。下面是一个班轮。
x, y = list(zip(*[[a, b] for a in dic for b in dic[a]]))
plt.scatter(x, y)
推荐阅读
- php - 在 WooCommerce 结帐中的订单总额之前添加交付单选按钮
- php - Magento 1.9 在订单网格中显示自定义选项
- opencv - 笔记本电脑相机不显示打开的 CV 帧
- java - JavaFX-根据鼠标位置放大和缩小画布
- r - 根据日期和r中的另一个条件选择行
- flutter - Android 虚拟设备对 Flutter 或 Visual Studio Code 不可见(但在 Android Studio 中可以)
- python - Python Kafka消费者阅读已经阅读的消息
- javascript - 如何用裁剪的幻灯片制作光滑的滑块
- elasticsearch - 在 Elasticsearch 的 update_by_query api 中获取更新的文档 ID
- linq - 如何从嵌套选择查询 linq 中读取数据