我正在跟踪此处的示例:https://plot.ly/python/aggregations/#histogram-binning
他们拥有的代码可以正常工作,但是我正在尝试将其扩展为按周以及按日,按月等方式自动合并。我知道此数据集没有时间,但是我也想对自己的数据进行分类一组时间也使用小时的数据。看起来这很简单,但是此代码无法产生正确的结果:
import plotly.io as pio
import pandas as pd
df = pd.read_csv("https://plot.ly/~public.health/17.csv")
data = [dict(
x = df['date'],
autobinx = False,
autobiny = True,
marker = dict(color = 'rgb(68, 68, 68)'),
name = 'date',
type = 'histogram',
xbins = dict(
end = '2016-12-31 12:00',
size = 'M1',
start = '1983-12-31 12:00'
)
)]
layout = dict(
paper_bgcolor = 'rgb(240, 240, 240)',
plot_bgcolor = 'rgb(240, 240, 240)',
title = '<b>Shooting Incidents</b>',
xaxis = dict(
title = '',
type = 'date'
),
yaxis = dict(
title = 'Shootings Incidents',
type = 'linear'
),
updatemenus = [dict(
x = 0.1,
y = 1.15,
xref = 'paper',
yref = 'paper',
yanchor = 'top',
active = 1,
showactive = True,
buttons = [
dict(
args = ['xbins.size', 'D1'],
label = 'Day',
method = 'restyle',
), dict(
args = ['xbins.size', 'D7'],
label = 'Week',
method = 'restyle',
), dict(
args = ['xbins.size', 'M1'],
label = 'Month',
method = 'restyle',
), dict(
args = ['xbins.size', 'M3'],
label = 'Quater',
method = 'restyle',
), dict(
args = ['xbins.size', 'M6'],
label = 'Half Year',
method = 'restyle',
), dict(
args = ['xbins.size', 'M12'],
label = 'Year',
method = 'restyle',
)]
)]
)
fig_dict = dict(data=data, layout=layout)
pio.show(fig_dict, validate=False)
有人知道如何按周获取垃圾箱(以及按小时获取假定垃圾箱吗?谢谢!
我想出了如何去做我想做的事情。答案被埋在此处找到的Plot.ly文档中:https://plot.ly/python/reference/
特别是在xbins.size下,它们指的是在axis.dtick中遵循相同的方案。这是具有答案的axis.dtick文档:
dtick父级:data [type = histogram] .marker.colorbar类型:数字或分类坐标字符串
设置此轴上刻度之间的步长。与tick0
一起使用。必须为正数,或对“ log”和“ date”轴可用的特殊字符串。如果轴type
是“ log”,则每10 ^(n“ dtick)设置刻度,其中n是刻度号。例如,将刻度标记设置为1、10、100、1000,...将dtick设置为1。要将刻度线设置为1、100、10000,...,将dtick设置为2。要将刻度线设置为1、5、25、125、625、3125,...将dtick设置为log_10(5 )或0.69897000433。“ log”具有几个特殊值;“ L”(其中f
是一个正数)给出刻度线的值线性间隔(但不包括位置),例如tick0
= 0.1,dtick
=要显示10的幂以及小数位之间的幂,请使用“ D1”(所有数字)或“ D2”(仅2和5)。 如果轴tick0
是“ date”,则必须将时间转换为毫秒。例如,要将刻度之间的间隔设置为一天,请设置type
到86400000.0。“日期”也有特殊值“ M”表示滴答号间隔了数月。dtick
必须为正整数。要在每三个月的15号设置滴答声,请将n
设置为“ 2000- 01-15“和tick0
至“ M3”。要每4年设置一次刻度,请将dtick
设置为“ M48”
因此,用于bin大小调整的新代码段是:
dtick
但是考虑到这一点,我会怀疑使用“ D1”也不可行。如果在Plot.ly工作的任何人都看到了这一点,您是否可以记下更新示例以指出此特定细微差别?