您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在matplotlib中针对数字变量绘制分类变量

在matplotlib中针对数字变量绘制分类变量

在matplotlib 2.1中,您可以使用字符串来绘制分类变量。即,如果将x值的列提供为字符串,它将把它们识别为类别。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df = pd.DataFrame({"x" : np.random.choice([1,17,99], size=100),
                   "y" : np.random.rand(100)*100})

plt.scatter(df["x"].astype(str), df["y"])
plt.margins(x=0.5)
plt.show()

在此处输入图片说明

为了在matplotlib <= 2.0中获得相同的结果,将针对某个索引进行绘制。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df = pd.DataFrame({"x" : np.random.choice([1,17,99], size=100),
                   "y" : np.random.rand(100)*100})

u, inv = np.unique(df["x"], return_inverse=True) 
plt.scatter(inv, df["y"])
plt.xticks(range(len(u)),u)
plt.margins(x=0.5)
plt.show()

使用seaborn可以得到相同的图stripplot

sns.stripplot(x="x", y="y", data=df)

可以通过seaborn的来完成更好的表示swarmplot

sns.swarmplot(x="x", y="y", data=df)

在此处输入图片说明

其他 2022/1/1 18:31:52 有446人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶