plotly 坐标轴范围截断rangebreaks使用的一个注意点
plotly坐标轴截断混合设置且指定设置截断时间的时候需要注意先后顺序
- 大范围的时间要在小范围的时间前设置,比如日内时间的截断要设置在日期截断的后面
- 同范围的规则截断要在指定截断前设置,对日期的截断,规则系截断最好在指定截断前设置,六日截断规则在指定日期截断前
以上两条为测试出来的规律,具体细节尚未细究与验证
1.测试代码:绘制不设置坐标轴范围截断的图
df = df[['datetime', 'v']]
fig = go.Figure(data=go.Figure(go.Scatter(x=df['datetime'],
y=df['v'],
mode='lines+markers',
line=dict(width=1),
marker=dict(size=1)
)))
fig.update_xaxes(tickformat="%H:%M\n%Y-%m-%d",)
先看不设置坐标轴范围截断的图
中间有大片没有数据的线,占据了大量空间,将数据形状挤压得看不出来

2.测试代码:绘制设置坐标轴范围截断的图,去除坐标轴中的无数据的空白的时间段
df = df[['datetime', 'v']]
数据时间序列 = pd.Series(df['datetime'].dt.date.unique())
全量时间序列 = pd.Series(pd.date_range(start=数据时间序列.min(), end=数据时间序列.max(), freq='D').date)
需要删除时间序列 = 全量时间序列[全量时间序列.isin(数据时间序列) == False].values
需要删除时间序列 = [i.strftime('%Y-%m-%d') for i in 需要删除时间序列]
fig = go.Figure(data=go.Figure(go.Scatter(x=df['datetime'],
y=df['v'],
mode='lines+markers',
line=dict(width=1),
marker=dict(size=1)
)))
fig.update_xaxes(
tickformat="%H:%M\n%Y-%m-%d",
rangebreaks=[
dict(bounds=[6, 1], pattern='day of week'), # 设置周六周日截断,规则截断
dict(values=需要删除时间序列), # 补充截断一天中没有数据的日期,指定日期截断
dict(bounds=[11.6, 13.4], pattern="hour"), # 空白时间段,时间范围小于天
dict(bounds=[15.1, 20.9], pattern='hour'), # 空白时间段
dict(bounds=[23.1, 8.9], pattern='hour')] # 空白时间段
)
添加时间截断后,数据看起来就连贯了很多

3.测试代码:绘制设置坐标轴范围截断的图,去除坐标轴中的无数据的空白的时间段,但是将需要截断的时间设置在需要截断的日期前,这样会出现错误
df = df[['datetime', 'v']]
数据时间序列 = pd.Series(df['datetime'].dt.date.unique())
全量时间序列 = pd.Series(pd.date_range(start=数据时间序列.min(), end=数据时间序列.max(), freq='D').date)
需要删除时间序列 = 全量时间序列[全量时间序列.isin(数据时间序列) == False].values
需要删除时间序列 = [i.strftime('%Y-%m-%d') for i in 需要删除时间序列]
fig = go.Figure(data=go.Figure(go.Scatter(x=df['datetime'],
y=df['v'],
mode='lines+markers',
line=dict(width=1),
marker=dict(size=1)
)))
fig.update_xaxes(
tickformat="%H:%M\n%Y-%m-%d",
rangebreaks=[
dict(bounds=[11.6, 13.4], pattern="hour"),
dict(bounds=[15.1, 20.9], pattern='hour'),
dict(bounds=[23.1, 8.9], pattern='hour'),
dict(bounds=[6, 1], pattern='day of week'),
dict(values=需要删除时间序列)
# 按照规则截断在指定日期截断后的顺序,画出来的图是空白
# dict(values=需要删除时间序列),
# dict(bounds=[6, 1], pattern='day of week'),
],
)
出现坐标轴重叠的现象,如下图
当调整周末代码在指定日期的代码后面的时候,画图甚至是空白的

plotly 坐标轴范围截断rangebreaks使用的一个注意点的更多相关文章
- iconv 中文截断问题的解决方法
GB2312 转换为 UTF-8 <?php $content = iconv('GB2312', 'UTF-8', $content); // $content为字符串 ?> iconv ...
- OD 实验(十三) - 对一个程序的逆向
程序: 运行程序 点击 Start,它就会进行对系统的扫描 点击 About -> Enter Registration Code 随便输入一下内容,点击 OK,会弹出该弹窗 用 PEiD 看一 ...
- SQL Server存储ntext截断问题
SQL Server存储ntext截断问题 最近遇到一个问题:将大文本存储到数据库的时候,查询出来的文本却被截断了. 最后百度发现,作者提出 sql server management studi ...
- WGAN (原理解析)
在GAN的相关研究如火如荼甚至可以说是泛滥的今天,一篇新鲜出炉的arXiv论文<Wasserstein GAN>却在Reddit的Machine Learning频道火了,连Goodfel ...
- Wasserstein GAN
在GAN的相关研究如火如荼甚至可以说是泛滥的今天,一篇新鲜出炉的arXiv论文<Wasserstein GAN>却在Reddit的Machine Learning频道火了,连Goodfel ...
- 深度学习-Wasserstein GAN论文理解笔记
GAN存在问题 训练困难,G和D多次尝试没有稳定性,Loss无法知道能否优化,生成样本单一,改进方案靠暴力尝试 WGAN GAN的Loss函数选择不合适,使模型容易面临梯度消失,梯度不稳定,优化目标不 ...
- php字符串操作集锦
web操作, 主要就是对字符文本信息进行处理, 所以, 字符串操作几乎占了很大一部分的php操作.包括 注意strstr 和 strtr的区别? 前者表示字符串查找返回字符串,后者表示字符串中字符替换 ...
- bzoj1835[ZJOI2010]base基站选址
据说正解是什么线段树优化DP,但是作为脑子有坑选手,我们需要5k的做法: 主席树+决策单调性..... F[m][i]表示已经放置了m个基站,第m个基站放置在第i个村庄,第i个村庄及之前的村庄的总最少 ...
- 强大的矩阵奇异值分解(SVD)及其应用
版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleast@gm ...
- -Three.js开发指南---用three.js创建你的第一个三维场景(第一章)
本章主要做了下面的工作 1 生成一个简单的场景,该场景的物体只有平面和坐标轴 2 在第一个demo的基础上添加光源和方块物体,并生成阴影 3 在第二个demo的基础上,增加动画,使得方块进行旋转 4 ...
随机推荐
- echarts数据过小,log类型无法出现刻度线,并将y轴转为科学计数法
方法仅供参考 可以更改logBase的值,数值越小刻度线越多,但也会出现,刻度值重复的问题,看各自需要,其次是对数据进行处理,全部变成大于1的数,最后在echarts的图表显示设置中更改回来 注意:对 ...
- 解决Vue打包后背景图片路径错误问题(转)
1.原因解析 当用vue-cli自动构建项目后,有两种运行方法,分别是: npm run dev : 提供一个开发的环境,自动热更新,资源使用绝对路径,所以可以正常看到背景图片. npm run bu ...
- Swagger UI教程 API 文档神器 搭配Node使用 web api 接口文档 (转)
http://www.68idc.cn/help/makewebs/qitaasks/20160621620667.html 两种方案 一.Swagger 配置 web Api 接口文档美化 二.通过 ...
- 为什么对1e9 + 7取模
在刷题的时候,很多题目答案都要求结果对1e9 + 7取模 刚开始我非常不理解,为什么要取模,取模难道结果不会变吗? 答案是结果会变,但因为原本需要得出的答案可能超出int64的范围,比如他叫你计算50 ...
- 3DMAX2018安装
1.下载3DMAX2018安装包并解压 2.打开解压后的文件点击Setup 选择语言和安装位置点击下一步 安装完成后点击enter a serial number 输入序列号066-66666666, ...
- 导出生成word
用XML做就很简单了.Word从2003开始支持XML格式,大致的思路是先用office2003或者2007编辑好word的样式,然后另存为xml,将xml翻译为FreeMarker模板(后缀为.ft ...
- classpath、path、JAVA_HOME的作用及JAVA环境变量配置 (转)
CLASSPATH是什么?它的作用是什么? 它是javac编译器的一个环境变量.它的作用与import.package关键字有关.当你写下improt java.util.*时,编译器面对import ...
- 对于Java课上问题的探究和解答
问题一:子类和父类的继承关系(extends) 需要强调的是,子类自动声明继承父类中的public和protected的成员 其中,public成员,外界可以自由访问: private成员,外界无法进 ...
- Javaweb实践复习--MyBatis
增删改查操作 查询 查询所有数据 1.编写接口方法:Mapper接口------参数:无------结果:List 2.编写sql语句:SQL映射文件 一般情况下,若是用户实体类里面的变量名称与数据库 ...
- 初认Spring
官网地址:https://spring.io/ Spring Framework的系统架构 1.Core Contiainer:核心容器 2.AOP:面向切片编程 3.Aspects:AOP思想实现 ...