如何在牵牛星plo中使线条更平滑?

2024-04-27 05:08:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据帧:

    {'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月到5月的过渡期间,线应该直接从100到200(4月)到300到400(5月)

如果我尝试绘制条形图:

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

它工作得很好

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


Tags: 数据sizechartdt绘制propertiesaltwidth
1条回答
网友
1楼 · 发布于 2024-04-27 05:08:59

问题是某些日期有多个size值。如果想要更平滑的绘图,可以通过计算maxminmean等来聚合它们,具体取决于适合可视化的内容:

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

enter image description here

相关问题 更多 >