2012-11-29 2 views
0

Google 차트를 작성하여 지난 7 일간 Google Analytics 데이터를 표시합니다. 특정 데이터가있을 때 X 축 레이블이 서로 쌓이는 문제가 있습니다. (또는 적어도 내가 알 수있는 것은 다를 수 있습니다.)Google 차트 축 라벨 문제 챠트 차트

이 보석을 사용하여 API 호출을 생성합니다 : 나는 URL의 각 부분이 무엇을하고 있는지를 살펴 보았지만 문제를 찾을 수는 없지만, 나는 뭔가를 놓치고 있다고 확신한다. 여기

가 동일한 기간 동안 두 사이트 데이터의 예이며, 첫 번째 문제를 표시하고, 두 번째는 동작 예이다

broken chart

여기

working chart

가있다 URL은 읽기 쉽도록 인코딩 된 텍스트이지만 단순 또는 확장 인코딩으로 전환하면 동일한 문제가 발생합니다.

깨진 버전 :

https://chart.apis.google.com/chart?chxl=0:|11-22|11-23|11-24|11-25|11-26|11-27&chxt=x&chco=58838C,BF996B,BF5841,A61C1C&chf=bg,s,ffffff&chd=t:979,807,681,653,580,509|822,724,602,562,519,455|540,409,381,375,336,301|307,156,173,176,155,133&chds=0,979&chdl=Visits|Visitors|New+Visits|Organic+Searches&chtt=Google+Analytics+-+Last+7+Days&cht=lc&chs=600x200&chxr=0,979,979|1,822,822|2,540,540|3,307,307 

작업 버전은 :

https://chart.apis.google.com/chart?chxl=0:|11-22|11-23|11-24|11-25|11-26|11-27&chxt=x&chco=58838C,BF996B,BF5841,A61C1C&chf=bg,s,ffffff&chd=t:1385,1395,981,947,863,731|1083,1222,832,715,690,546|580,566,427,413,387,329|247,151,151,171,162,135&chds=0,1395&chdl=Visits|Visitors|New+Visits|Organic+Searches&chtt=Google+Analytics+-+Last+7+Days&cht=lc&chs=600x200&chxr=0,1385,1395|1,1083,1222|2,580,580|3,247,247 

답변

1

chxr 값이 잘못되었습니다. 보석은 하나만 생성해야하는 경우 여러 축에 대해 생성합니다. 나는 수작업으로 보석의 최저, 최대 및 한 단계를 뒤집 었으며 효과가 있었다.

[@visits,@visitors,@new_visits,@organic_searches].each do |array| 
    array.values.each do |value| 
    @max_value = value if (value > @max_value) 
    end 
end 

# Chart it 
chart = Gchart.line(
    :title => prop.to_s.upcase + ' Google Analytics - Past 7 Days', 
    :size => '600x200', 
    :bg => 'ffffff', 
    :axis_with_labels => ['x'], 
    :axis_labels => [@visits.keys], 
    :legend => ['Visits','Visitors','New Visits','Organic Searches'], 
    :line_colors => ['58838C','BF996B','BF5841','A61C1C'], 
    :encoding => 'text', 
    :data => [@visits.values,@visitors.values, @new_visits.values, @organic_searches.values], 
    :max_value => @max_value, 
    :axis_range => [nil, [0, @max_value, (@max_value/10).to_i]], 
    :format => 'image_tag') 
: 여기

내 코드는 먼저 내 모든 데이터 포인트의 최대 값을 받고, 보석을 사용하고 있습니다