如何在altair plo中使线条更平滑?

如何解决如何在altair plo中使线条更平滑?

我有以下DataFrame:

    {'datum': {78: Timestamp('2019-07-22 00:00:00'),116: Timestamp('2020-04-20 00:00:00'),31: Timestamp('2018-06-04 00:00:00'),5: Timestamp('2017-10-30 00:00:00'),125: Timestamp('2020-06-29 00:00:00'),45: Timestamp('2018-10-01 00:00:00'),14: Timestamp('2018-01-22 00:00:00'),44: Timestamp('2018-09-24 00:00:00'),73: Timestamp('2019-06-03 00:00:00'),89: Timestamp('2019-10-14 00:00:00'),130: Timestamp('2020-08-03 00:00:00'),53: Timestamp('2018-11-26 00:00:00'),85: Timestamp('2019-09-16 00:00:00'),93: Timestamp('2019-11-11 00:00:00'),29: Timestamp('2018-05-14 00:00:00'),16: Timestamp('2018-02-05 00:00:00'),35: Timestamp('2018-07-16 00:00:00'),90: Timestamp('2019-10-21 00:00:00'),83: Timestamp('2019-09-02 00:00:00'),19: Timestamp('2018-02-26 00:00:00'),40: Timestamp('2018-08-20 00:00:00'),92: Timestamp('2019-11-04 00:00:00'),122: Timestamp('2020-06-08 00:00:00'),98: Timestamp('2019-12-16 00:00:00'),59: Timestamp('2019-01-14 00:00:00'),42: Timestamp('2018-09-03 00:00:00'),33: Timestamp('2018-06-25 00:00:00'),99: Timestamp('2019-12-23 00:00:00'),69: Timestamp('2019-05-06 00:00:00'),97: Timestamp('2019-12-09 00:00:00'),17: Timestamp('2018-02-12 00:00:00'),28: Timestamp('2018-05-07 00:00:00'),65: Timestamp('2019-03-25 00:00:00'),109: Timestamp('2020-03-02 00:00:00'),115: Timestamp('2020-04-13 00:00:00'),66: Timestamp('2019-04-01 00:00:00'),18: Timestamp('2018-02-19 00:00:00'),4: Timestamp('2017-10-23 00:00:00'),111: Timestamp('2020-03-16 00:00:00'),39: Timestamp('2018-08-13 00:00:00')},'size': {78: 263,116: 532,31: 151,5: 803,125: 424,45: 161,14: 917,44: 145,73: 175,89: 4,130: 299,53: 643,85: 386,93: 162,29: 56,16: 39,35: 112,90: 421,83: 127,19: 59,40: 125,92: 142,122: 408,98: 609,59: 118,42: 233,33: 395,99: 178,69: 85,97: 537,17: 15,28: 13,65: 50,109: 277,115: 1008,66: 133,18: 25,4: 23,111: 192,39: 68}}

每当我尝试使用以下代码altair绘制折线图时:

alt.Chart(dt_pv).mark_line().encode(
    x="yearmonth(datum)",y="size").properties(width=800)

我得到此输出

enter image description here

我能描述的最好方法是:当线从一个点到另一个点时,它一直下降到最小值,然后上升到应该在该时间点显示的实际值。例如,在2018年5月,该线下降到X轴= 0(或几乎为零),然后在同一时间点上升到300到400百之间。

如何使直线上的点之间的过渡更平滑,从而显示实际趋势?顺便说一句,我的意思是,使用上面的相同示例,在从2018年4月到2018年5月的过渡中,生产线应该直接从100到200(4月)到300到400百(5月)之间>

如果我尝试绘制条形图:

alt.Chart(dt_pv).mark_bar().encode(
    x="yearmonth(datum)",y="size").properties(width=800)

工作正常。

enter image description here

所以我不认为数据有问题,但图表配置有问题。

解决方法

问题是某些日期您有多个size值。如果您想要更平滑的图,则可以根据适合您的可视化的条件,通过计算maxminmean等来汇总它们:

alt.Chart(dt_pv).mark_line().encode(
    x="yearmonth(datum)",y="max(size)").properties(width=800)

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?