python - Seaborn 或 Matplotlib 的语义差分图
问题描述
是否可以使用 Seaborn 或 Matplotlib 创建语义差分图?我在文档和这里都找不到任何提示。
语义微分图:
我在考虑一个线图,但你如何映射第二个 y 轴值?
如果这是可能的,怎么做?
谢谢你的帮助!
解决方案
让我们首先使用 anOrderedDict
来存储我们将绘制的属性:
from collections import OrderedDict
import matplotlib.pyplot as plt
from matplotlib.ticker import MaxNLocator
import numpy as np
dict = OrderedDict([('Wholesome', -2), ('Unique', -1), ('Established', 2), ('Traditional', 1)])
opposites = ('Exotic', 'Standard', 'New', 'Contemporary')
有了这个设置,我们就可以开始绘图了。让我们定义我们的图形和轴,并为我们的数据制作一个简单的散点图:
fig, ax1 = plt.subplots(1, 1)
ax1.plot(dict.values(), np.r_[:len(dict)], marker='o')
好的,好的,我们正在路上。接下来是将 yticks 设置为我们在字典中设置的属性(虽然我们在这里,但要确保我们只在 x 轴刻度上使用整数)。
ax1.set_yticks(np.r_[:len(dict)])
ax1.set_yticklabels(dict.keys())
ax1.xaxis.set_major_locator(MaxNLocator(integer=True))
接下来,让我们在情节的“另一边”设置对立属性。让我们建立一个双轴来帮助我们解决这个问题。
ax2 = ax1.twinx()
最后,让我们标记我们的孪生轴并确保成对的属性垂直排列。
ax2.set_ylim(ax1.get_ylim())
ax2.set_yticks(np.r_[:len(dict)])
ax2.set_yticklabels(opposites)
调用fig.tight_layout()
应确保 y 轴标签可见。所有这些加在一起给了我以下情节:
推荐阅读
- docker - GitLab CI/CD Docker-In-Docker 使用自定义 DIND 服务失败
- git - 无法在 Github 上为 pip install git+ssh 指定密钥文件
- c++ - 关于解决方案 C++ 的成对交换节点链表混淆
- r - 如果它是一个字符串,有没有办法在 R 中按月分组?
- random - 程序生成和排列问题
- dialogflow-es - 当用户重复问题时,如何创建一般的后备意图?
- python - 如何以numpy数组格式分割图片?
- python - 如何用另一个数据框的值过滤掉一个数据框并根据出现次数收集统计信息?
- javascript - 如何在不使用原始 Javascript 重定向的情况下发布表单?
- python - 如何从 Django Request 对象中提取路径参数?