2012-09-17 25 views
14

Kullanıcıdan bir tarih aralığına göre görüntülemek istediğim bir grafiğim var. Bu grafikte her 15 dakikada bir veri noktası vardır. Dolayısıyla, kullanıcılar geniş bir tarih aralığı seçtiğinde, her seri için çok sayıda veri noktası olabilir.Highcharts, çok sayıda veri noktasına sahip seri görüntülemiyor

grafik ekran ki ilk örnekte: Aşağıdaki örnekler bu bir çift. İkinci örnekte grafik görüntülenmiyor. Çok fazla veri noktasıyla çalışan bir Highstock demosu (52,000 points with data grouping) bulunmaktadır. Yukarıdaki tabloları bir yüksek stok grafikte değiştirmeye çalıştım ve hala aynı sonuçları elde ettim.

Bunu düzeltmek için ne yapabilirim?

+0

Eğer dataGrouping en birimlerini değiştirmek denediniz mi? –

+0

Aslında var. Ancak kullanıcı yakınlaştırırsa, gruplandırmanın kapsam için geçerli olmasını isterim. Yani Grafik çok sayıda veri gösteriyorsa ve günlük aralıklarla gruplandırılmışsa. Kullanıcılar bir güne zum yaparsa, gruplamanın 15 dakikalık aralıklarla değiştirilmesini istiyorum. Yukarıdaki yüksek stok örneğine bakarak, grafikleri zaman çizelgesine göre doldurmak için sunucu çağrıları kullanıyorlar. [** Yükleme **] 'nın nasıl alınacağını öğrenmek zorundayım (http://www.highcharts.com/component/content/article/2-news/48-loading-millions-of-points-in-highcharts ASP.NET MVC 3 ortamında çalışıyor. – Linger

cevap

23

Bu turbo threshold seçenek kaynaklanmaktadır:

"bir dizi bundan daha bir veri dizisi, sayılar sadece bir boyutlu diziler ya da X ve Y iki boyutlu dizi içerdiğinde Ayrıca, sadece ilk nokta test edilir ve geri kalan 'un aynı formatta olduğu kabul edilir. Bu, kontrolünü ve uzun seride indekslemeyi pahalı veriden kurtarır. "

Varsayılan olarak 1000 noktaya ayarlanır. Dizinizdeki her nokta bir nesne olduğundan ve sayıları eşikten büyük olduğundan, grafiğiniz işlenmiyor.

İşte 2000 Burada

olarak ayarlanmış eşik ile çalışan arsa kod modifiye bölümü var gösteren jfFiddle var:

plotOptions: { 
    spline: { 
    turboThreshold: 2000, 
    ... 

Başka bir çözüm 2 d sizin serisi verileri kodlamak için olurdu xy özellikleriyle temsil edilen ve her bir nokta ile temsil edilen dizi yerine.

+2

Güzel yakalamak, @ aksi takdirde yapmak için bazı güçlü kullanım durumunuz yoksa 2d dizi formunu kullanıyor olmalısınız –

0

turboThreshhold için bir çözüm böyle bir şey olup olmadığını nesil PHP ile tepki:

    if(count($responseObj) > 1000){ 
        $modolo = round(count($responseObj)/1000); 
        for($i = count($responseObj)-1; $i >= 0 ; $i--){ 
         if(($i % $modolo) != 0){ 
          unset ($responseObj[$i]); 
         } 
        } 
        $responseObj = array_merge($responseObj); 
       } 
İlgili konular