gpt4 book ai didi

Python - Seaborn fiddle 情节,没有做我想做的事

转载 作者:行者123 更新时间:2023-12-01 09:22:17 29 4
gpt4 key购买 nike

我正在查看示例,但一切都需要数据框。

如果我有以下数据框:

x = ["G","F","E","D","C","B"]
y = [3,14,45,47,34,15]

df = pd.DataFrame(
{'Band': x,
'Count': y,
})

我想使用 Count 作为值和 Band 作为步骤来创建 fiddle 图,所以我这样做了:

ax = sns.violinplot( y="Count", data=df)

产生这个:

enter image description here

但是,我希望在 y 轴 上显示 Bands,然后将 Count 作为每个等级的凸起大小。您是否必须仅在 y 轴上使用连续值

编辑:

我希望它看起来像:

enter image description here

最佳答案

fiddle 图通常用于描述数据集的核密度。目前尚不清楚离散数据集的核密度应该是多少,但是您当然可以通过映射字母 "B", "C", "D", ...< 来假设离散情况是连续的 转换为整数 0,1,2,...,然后绘制 fiddle 。

import matplotlib.pyplot as plt
import seaborn as sns

x = ["G","F","E","D","C","B"]
y = [3,14,45,47,34,15]

data = []
for i, yi in enumerate(y):
data.extend([i]*yi)

sns.violinplot(y=data)
plt.yticks(range(len(x)), x)
plt.show()

enter image description here

这给出了一些关于字母分布的一般提示。然而,对于定量使用,人们可能宁愿绘制条形图。

import matplotlib.pyplot as plt
import numpy as np

x = ["G","F","E","D","C","B"]
y = [3,14,45,47,34,15]

plt.barh(np.arange(len(x)), y)
plt.yticks(np.arange(len(x)), x)
plt.show()

enter image description here

现在您当然可以以类似于 fiddle 的方式设计条形图,或者将其称为“圣诞 TreeMap ”。

import matplotlib.pyplot as plt
import matplotlib.ticker as mticker
import numpy as np

x = ["G","F","E","D","C","B"]
y = [3,14,45,47,34,15]

plt.barh(np.arange(len(x)), y, height=1, color="C0")
plt.barh(np.arange(len(x)), -np.array(y), height=1, color="C0")

plt.yticks(np.arange(len(x)), x)

# create strictly positive ticklabels
posfmt = mticker.FuncFormatter(lambda x,_: "{:g}".format(np.abs(x)))
plt.gca().get_xaxis().set_major_formatter(posfmt)
plt.show()

enter image description here

关于Python - Seaborn fiddle 情节,没有做我想做的事,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50716365/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com