代码之家  ›  专栏  ›  技术社区  ›  badp

谷歌图表API:绘制木纹图时出现问题

  •  0
  • badp  · 技术社区  · 15 年前

    我正在尝试使用 xyline google chart a p i via the not so well documented gChartWrapper libraries.

    下面是应该生成图表的代码的一部分:

    data=[]
    交通量最大值=0
    日期_minmax=[]
    
    #我有两个系列的时间戳读数
    对于站点中的站点:
    site_data=获取(站点)的数据点
    
    date_values=[datetime_to_unix(item.timestamp)for item in site_data]
    date_min max=minmax(date_minmax+date_values)获取的最小值和最大值
    β结垢
    traffic_values=[项目.站点中项目的流量\u data]
    traffic_max=max(traffic_max,*traffic_values)只需获取最大读数
    
    生成图
    data.append(日期值)
    data.append(流量值)
    
    #向轴添加回旋角度
    日期_minmax[0]-=500
    日期_minmax[1]+=500
    交通量最大值/=0.9
    
    生成图
    图表=linexy(数据)
    图表.图例(*网站)
    图表颜色(“绿色”、“红色”)。
    图表尺寸(600400)
    图表比例(日期最小值[0],日期最小值[1],0,流量最大值)
    图表.轴.类型(“xy”)
    chart.axles.range(0,*日期\u minmax)
    图表.轴.范围(1,0,流量最大值)
    
    chart_url=图表.url
    < /代码> 
    
    

    然而,这就是我得到的:

    问题:红色系列发生了什么?


    为了您的方便,下面是一些漂亮的打印爱好之后的data

    [[1286116241.448437,1286118544.4077079,1286119431.18503,1286121011.5838161],
    [6710.98999999998,
    6716.279999999997,
    6641.8900000000003,
    6644.94999999998],
    [1286116241.979831,
    1286118545.0123601,
    1286119431.9650409,
    1286121012.1839011],
    [38323.86000000001,
    38326.620000000003,
    38327.660000000003,
    38329.61000000001]]
    < /代码> 
    
    

    下面是包装器生成的参数列表,也是在一些漂亮的打印爱好之后:

    chco=008000,ff0000
    CHD=T:1286116241.01286118544.01286119431.01286121011.0
    6711.06716.36641.96644.9条
    1286116241.01286118545.01286119431.01286121012.0
    38323.938326.638327.738329.6条
    chdl=gaming.stackexchange.com
    ServFruttcom
    CHDS=1286115741.01286121512.0、042588.4555556
    CHS=600×400
    LXY
    CHXR=01286115741.01286121512.0
    1042588.4555556号
    Chxt= x,y
    LXY
    CHxr=01286116241.451286121012.18
    1042588.4555556号
    Chxt= x,y
    < /代码> <生成图表:

    data = []
    traffic_max = 0
    date_minmax = []
    
    #I have a number of timestamped readings in two series
    for site in sites:
      site_data = get_datapoints_for(site)
    
      date_values = [datetime_to_unix(item.timestamp) for item in site_data]
      date_minmax = minmax(date_minmax + date_values) #get min and max values for
                                                      #scaling
      traffic_values = [item.traffic for item in site_data]
      traffic_max = max(traffic_max, *traffic_values) #just get maximum for readings
    
      #build graph
      data.append(date_values)
      data.append(traffic_values)
    
    #add leeway to axes
    date_minmax[0] -= 500
    date_minmax[1] += 500
    traffic_max /= 0.9
    
    #build graph
    chart = LineXY(data)
    chart.legend(*sites)
    chart.color("green", "red")
    chart.size(600,400)
    chart.scale(date_minmax[0], date_minmax[1], 0, traffic_max)
    chart.axes.type("xy")
    chart.axes.range(0, *date_minmax)
    chart.axes.range(1, 0, traffic_max)
    
    chart_url = chart.url
    

    然而,这就是我得到的:

    link text

    问题:红色系列怎么样了?


    为了您的方便,这是data在一些美丽的印刷品爱情之后:

    [[1286116241.448437, 1286118544.4077079, 1286119431.18503, 1286121011.5838161],
     [6710.9899999999998,
      6716.2799999999997,
      6641.8900000000003,
      6644.9499999999998],
     [1286116241.979831,
      1286118545.0123601,
      1286119431.9650409,
      1286121012.1839011],
     [38323.860000000001,
      38326.620000000003,
      38327.660000000003,
      38329.610000000001]]
    

    下面是包装器生成的参数列表,也是在一些漂亮的打印爱好之后:

    chco=008000,FF0000
    chd=t:1286116241.0,1286118544.0,1286119431.0,1286121011.0
        6711.0,6716.3,6641.9,6644.9
        1286116241.0,1286118545.0,1286119431.0,1286121012.0
        38323.9,38326.6,38327.7,38329.6
    chdl=gaming.stackexchange.com
        serverfault.com
    chds=1286115741.0,1286121512.0,0,42588.4555556
    chs=600x400
    cht=lxy
    chxr=0,1286115741.0,1286121512.0
        1,0,42588.4555556
    chxt=x,y
    cht=lxy
    chxr=0,1286116241.45,1286121012.18
        1,0,42588.4555556
    chxt=x,y
    
    1 回复  |  直到 15 年前
        1
  •  0
  •   badp    15 年前

    chart.scale(date_minmax[0], date_minmax[1], 0, traffic_max)
    

    chart.scale(*[date_minmax[0], date_minmax[1], 0, traffic_max]*len(sites))
    

    推荐文章