python - Python 中的数据可用性图表
问题描述
我想知道 Python 是否可以绘制具有多个变量的时间序列的数据可用性。下面显示了一个示例,取自Visavail.js - 时间数据可用性图表。
解决方案
这是在 Jupyter Notebook 中使用 plotly 的建议:
代码:
import random
import pandas as pd
import plotly.express as px
from random import choices
# random data with a somewhat higher
# probability of 1 than 0 to mimic OPs data
random.seed(1)
vals=[0,1]
prob=[0.4, 0.6]
choices(vals, prob)
data=[]
for i in range(0,5):
data.append([choices(vals, prob)[0] for c in range(0,10)])
# organize data in a pandas dataframe
df=pd.DataFrame(data).T
df.columns=['Balance Sheet', 'Closing Price', 'Weekly Report', 'Analyst Data', 'Annual Report']
drng=pd.date_range(pd.datetime(2080, 1, 1).strftime('%Y-%m-%d'), periods=df.shape[0]).tolist()
df['date']=[d.strftime('%Y-%m-%d') for d in drng]
dfm=pd.melt(df, id_vars=['date'], value_vars=df.columns[:-1])
# plotly express
fig = px.bar(dfm, x="date", y="variable", color='value', orientation='h',
hover_data=["date"],
height=600,
color_continuous_scale=['firebrick', '#2ca02c'],
title='Data Availabiltiy Plot',
template='plotly_white',
)
fig.update_layout(yaxis=dict(title=''), xaxis=dict(title='', showgrid=False, gridcolor='grey',
tickvals=[],
)
)
fig.show()
推荐阅读
- python - java.lang.NoSuchMethodError: org.apache.spark.internal.Logging.$init$
- javascript - 根据日期对对象数组进行排序
- c++ - 是什么改变了 int a 的值?一个简单的 C++ 问题让我很困惑
- javascript - 在 Epi Server 中通过 AJAX 请求更新后刷新页面
- php - 获取肥皂请求
- r - 如何将因子转换为数字二进制变量?
- javascript - ReferenceError:没有为汇总包js定义要求
- python - 如何从Python中的排列列表中随机选择n个项目
- spring-boot - Springboot:如何仅为配置文件设置外部位置?
- unicode - 如何在 Common Lisp 中按字母顺序对 unicode 字符串进行排序?