语义差异图与Seaborn或Matplotlib

2024-04-27 03:45:04 发布

您现在位置:Python中文网/ 问答频道 /正文

是否可以使用Seaborn或Matplotlib创建语义差异图?我在文件和这里都找不到任何暗示。你知道吗

语义差异图:

enter image description here

我在想一个折线图,但是如何绘制第二个y轴的值呢?你知道吗

如果这是可能的,怎么做?你知道吗

谢谢你的帮助!你知道吗


Tags: 文件matplotlib语义绘制差异seaborn折线图
1条回答
网友
1楼 · 发布于 2024-04-27 03:45:04

让我们从使用^{}存储要绘制的属性开始:

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轴标签是可见的。所有这些给了我以下的情节:

enter image description here

相关问题 更多 >