我想用一些条形图来绘制一些时间戳,其中1条形图表示一个小时。
我的问题是刻度线居中居中,我想将其移动到条形图的左端。
当不放大图时,这不是问题,但是当放大时,会出现更多的刻度标签,这是错误的。
编辑:我需要选项barmode = 'overlay'
,因为我还有其他要绘制的迹线,此示例中未包括这些迹线。
下面的图片说明了我当前和预期的布局,这是绘制该图的一些数据。 (我尝试过但没有成功的某些选项也包含在xaxis配置中,但未注释)。
library(plotly)
library(lubridate)
df <- data.frame(
ts = seq(as.POSIXct("2019-03-20 00:00:00"), by = "hour", length.out = 24),
val = sample(1:100, 24)
)
plot_ly() %>%
add_bars(data = df, x = ~ts, y = ~val) %>%
layout(dragmode = "select", autosize = TRUE, selectdirection = "h",
barmode = 'overlay',
bargap = 0.05,
xaxis = list(ticks = "outside",
type = "date",
# tickson="boundaries",
# offset=1800,
tickmode = "auto",
title = ""
)) %>%
config(scrollZoom = TRUE)
答案 0 :(得分:1)
默认情况下,条居中,我没有找到如何更改此设置。 一种选择是添加第二条,因为当每个x轴单位有2条时,一个轴位于刻度线的左侧,第二个轴位于右侧(尝试使用一个轴获取的值)
为什么不创建第二个不可见条? :)
df <- data.frame(
ts = seq(as.POSIXct("2019-03-20 00:00:00"), by = "hour", length.out = 24),
val = sample(1:100, 24),
val0 = 0
)
plot_ly(df, type = 'bar') %>%
add_trace(x = ~ts, y = ~val0) %>%
add_trace(x = ~ts, y = ~val) %>%
layout(
showlegend = FALSE
) %>%
config(scrollZoom = TRUE)
这将创建一个图例(因为有2种类型的条,分别是val和val0),所以我将其删除。
答案 1 :(得分:1)
以下满足您的需求吗?
我有时在new Vue({
el: "#app",
data() {
return {
input: null
}
},
methods: {
handleInput(e) {
this.input = e.target.value ?
e.target.value.toString().toUpperCase() :
e.target.value;
}
}
});
中要利用的一件事是,您可以在<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<input type="text" v-model="input" @input="handleInput"> {{ input }}
<!-- {{ input }} is just for reference -->
</div>
中显示不同的值,这些值与plotly
和text
的值无关用于绘制数据。
在这种情况下,我们可以创建一个具有偏移时间值x
的列,并在每行时间的半小时之后绘制x值-如果您每小时都有一列,则这有效左对齐条形。
y
答案 2 :(得分:0)
确定要结束设计工作吗?减去30分钟即可放大。
我不建议您实际编辑数据,即使这是我在代码中所做的。在调用中添加一个小功能吧可以解决吗?如果叠加其他数据,可能会造成混乱,但我只是想提出建议。
library(plotly)
library(lubridate)
df2 <- data.frame(
ts = seq(as.POSIXct("2019-03-20 00:00:00"), by = "hour", length.out = 24) - minutes(30),
val = sample(1:100, 24)
)
plot_ly() %>%
add_bars(data = df2, x = ~ts, y = ~val) %>%
layout(dragmode = "select", autosize = TRUE, selectdirection = "h",
barmode = 'overlay',
bargap = 0.05,
xaxis = list(ticks = "outside",
type = "date",
# tickson="boundaries",
# offset=1800,
tickmode = "auto",
title = ""
)) %>%
config(scrollZoom = TRUE)