【问题标题】:plot more vertical density plots in one graph [duplicate]在一张图中绘制更多垂直密度图[重复]
【发布时间】:2020-12-13 20:09:21
【问题描述】:

我想获得一张和我画的相似的图表:

x 轴为收集数据的日期,y 轴为相关密度。

我写了这几行:

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
import pandas as pd
from datetime import datetime

df = pd.DataFrame(np.random.rand(7, 100), columns=['y']*100)
df.index = pd.date_range(datetime.today(), periods=7).tolist()

sns.kdeplot(data=df, y='y', fill=True,  alpha=.5, linewidth=0)

plt.show()

但它当然不起作用。如何修改代码以获得我的想象?

【问题讨论】:

    标签: python pandas seaborn density-plot


    【解决方案1】:

    可以使用statsmodels.graphics.boxplots.violinplot轻松完成

    from statsmodels.graphics.boxplots import violinplot
    
    fig, ax = plt.subplots()
    violinplot(data=df.values, ax=ax, labels=df.index.strftime('%Y-%m-%d'), side='right', show_boxplot=False)
    fig.autofmt_xdate()
    

    【讨论】:

    • 很好的解决方案!只是,x 位置不会跟随日期,对吧?我的意思是如果日期分布不均匀
    • 您可以使用positions=参数将小提琴放置在任意位置,应该是可行的
    猜你喜欢
    • 2019-09-15
    • 2013-06-13
    • 1970-01-01
    • 2014-02-09
    • 1970-01-01
    • 2012-03-20
    • 1970-01-01
    • 2014-08-20
    • 1970-01-01
    相关资源
    最近更新 更多