Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在牵牛星plo中使线条更平滑?_Python_Data Visualization_Altair - Fatal编程技术网

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

Python 如何在牵牛星plo中使线条更平滑?,python,data-visualization,altair,Python,Data Visualization,Altair,我有以下数据帧: {'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

我有以下数据帧:

    {'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)
我得到这个输出

我能描述这一点的最好方式是:当直线从一个点到另一个点时,它会一直下降到最小值,然后上升到应该在这个时间点显示的实际值。例如,在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)
它很好用


因此,我认为数据没有问题,但我的图表配置有问题。

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

alt.Chart(dt\u pv).标记线().编码(
x=“年-月(基准)”,
y=“最大(大小)”)。属性(宽度=800)

某些日期似乎有多个“大小”值。