【发布时间】:2020-12-06 14:06:14
【问题描述】:
所以在任何人说之前,我并不是要创建一个水平条形图。我正在尝试制作一个散点图,根据 y 值对不同的图进行分类。
这是我当前的代码:
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import datetime
import random
f = []
for i in range(10):
f.append(random.randint(60,80))
df = pd.DataFrame({
"Weight": f, "Dates": ["01/12/20", "05/11/20", "12/02/20", "18/09/20", "22/04/20", "19/01/20", "18/02/20", "02/01/20", "28/11/20", "26/03/20"]
}, columns=["Weight", "Dates"])
df["Dates"] = pd.to_datetime(df["Dates"])
df.sort_values(by="Dates", inplace=True, ascending=True)
sns.set_theme(style="dark")
dates = [datetime.datetime.date(x) for x in df["Dates"]]
graph = sns.stripplot(data=df, x=dates, y="Weight")
graph.set_xticklabels(graph.get_xticklabels(), rotation=45)
plt.show()
所以这是当前的输出:
但我希望能够添加一些条形图,以便对数据进行分类,例如(抱歉我画得不好):
之后我还想看点,但我不在乎它们是什么颜色。
我不知道这是否可能,但谢谢!
编辑:tmdavidson 在 cmets 中回答。
【问题讨论】:
-
你如何确定条的高度应该是多少?您可以在轴上添加一些 matplotlib
Rectangle补丁。或使用fill_between。或者在散点图下方添加 zorder,或者给它们一个透明度 (alpha),这样你就可以看到它们后面的散点图。 -
谢谢,矩形位的建议奏效了。现在只是想对其进行排序
标签: python python-3.x matplotlib seaborn