嗨,我正在尝试更改条形图上柱线的起点和终点。我的目标是拥有一个跨越整个月的酒吧。现在我的代码是:
cumulative = go.Bar(y=self.gb[self.y_column],
x=self.gb.index,
name='Cumulative',
hoverinfo='x+y',
hovertemplate="Month: %{x} <br>Cumulative Tank " + self.units + ": %{y}",
opacity=0.6,
marker=dict(color='rgb(158,202,225)',
line=dict(color='rgb(8,48,107)',
width=1.5,
),
)
)
我目前在本月底设置了xtick。如果我可以使条形与xtick右对齐,则可以使用自定义条形宽度来使其达到月底。我认为我无法计算该月的中间日期,因为在31天的月份中,我将有一天的间隔或一天的间隔。任何帮助将不胜感激!
我在这个问题上发表的阴谋论坛帖子:https://community.plot.ly/t/set-alignment-of-vertical-bar-on-x-axis/23185
答案 0 :(得分:0)
这不是解决方案,但我很满意
因此,我决定使用实线图来解决此问题。这是代码,它是一个用于计算每月累积值和绘图填充区域散布对象的辅助函数:
private void button1_Click(object sender, EventArgs e)
{
int i = imageList1.Images.Count;
var ic = new ImageCollection();
var fbd = new FolderBrowserDialog();
fbd.Description = "Select meme folder or image.";
if (fbd.ShowDialog() == DialogResult.OK)
{
foreach (var file in Directory.GetFiles(fbd.SelectedPath))
{
if (!ic.CheckIfImage(file)) continue;
imageList1.Images.Add(new Bitmap(file, true));
listView1.Items.Add($"{Path.GetFileNameWithoutExtension(file)}", i++);
}
}
}
然后密谋:
def cumulative_df(df, date_term, y_term, v_print):
v_print('Making the Monthly Sum DF')
df = df[[date_term, y_term]]
df = df.set_index(date_term)
gb = df.groupby(pd.Grouper(freq="M")).sum()
starts = []
for index, row in gb.iterrows():
new_start = index - pd.offsets.MonthBegin(1, normalize=True)
starts.append([new_start, row.values[0]])
starts_df = pd.DataFrame(starts, columns=[date_term, y_term])
starts_df = starts_df.set_index(date_term)
gb = gb.append(starts_df, sort=False)
gb.sort_values(date_term, inplace=True)
return gb