Zaawansowana biblioteka do wykresów

Zaawansowana biblioteka do wykresów
Sebastiano
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 4 lata
  • Postów:488
0

Poszukuję biblioteki do wykresów z takimi wymaganiami, czy ktoś jest w stanie coś konkretnego polecić i miał z tym styczność?

  1. Głównie wykresy liniowe (to nie problem)
  2. responsywność
  3. przewijanie wykresu w prawo i lewo (żadnej biblioteki z ta funkcją nie znalazłem)
  4. dane będą w JSON, lecz wykres ma być generowany poprzez podanie interwału czasowego "od do" (np. wartości temperatury od 2 marca 2012 do 19 grudnia 2012) i tylko te dane muszą być pobrane z danego pliku JSON.
hauleth
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:18 dni
0

Jak prezentacja jakichkolwiek danych to tylko D3.js.


Sebastiano
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 4 lata
  • Postów:488
0

Wygląda ciekawie;) Responsywnie pod bootstrapem nie będzie problemu?

edytowany 1x, ostatnio: dzek69
hauleth
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:18 dni
0

Będzie tak jak zakodujesz. D3 nie jest stricte biblioteką do wykresów, jest biblioteką do przetwarzania danych na ich reprezentację w DOMie. Możesz to zrobić np. generując obrazek SVG i wtedy będzie to tak responsywne jak to ostylujesz.


Sebastiano
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 4 lata
  • Postów:488
0

A no tak, najlepiej na SVG zamienić. Musze jeszcze wymyslić jak przesuwac taki wykres w prawo i lewo (tylko tutaj SVG raczej nie wchodzi w grę).

edytowany 1x, ostatnio: dzek69
hauleth
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:18 dni
1

Przykład tego co chcesz uzyskać: http://bl.ocks.org/benjchristensen/2657838


Sebastiano
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 4 lata
  • Postów:488
0

Odświeżanie jest automatyczne ale najbardziej mi zależy aby była możliwość przesunięcia w tył aby zerknąć na dane historyczne.

I jeszcze mam pytanie czy d3.js obsłuży jsona w takiej postaci?:

Kopiuj
[[["2014-11-11 17:00:00","10.1"],["2014-11-11 18:00:00","9.9"],["2014-11-11 19:00:00","10.1"]],
[["2014-11-11 17:00:00","6.8"],["2014-11-11 18:00:00","6.1"],["2014-11-11 19:00:00","5.6"]]]
edytowany 2x, ostatnio: Sebastiano
hauleth
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:18 dni
0

Obsłuży dowolne dane, które powiesz mu jak sparsować.


Sebastiano
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 4 lata
  • Postów:488
0

Próbuję z tą biblioteką na przykładzie:

Kopiuj
$(document).ready(function () {
   

    d3.json('http://nvd3.org/examples/cumulativeLineData.json', function (data) {
        nv.addGraph(function () {
            var chart = nv.models.cumulativeLineChart()
                          .x(function (d) { return d[0] })
                          .y(function (d) { return d[1] / 100 }) //adjusting, 100% is 1.00, not 100 as it is in the data
                          .color(d3.scale.category10().range())
                          .useInteractiveGuideline(true)
            ;

            chart.xAxis
               .tickValues([1078030800000, 1122782400000, 1167541200000, 1251691200000])
               .tickFormat(function (d) {
                   return d3.time.format('%x')(new Date(d))
               });

            chart.yAxis
                .tickFormat(d3.format(',.1%'));

            d3.select('#chart svg')
                .datum(data)
                .call(chart);

            //TODO: Figure out a good way to do this automatically
            nv.utils.windowResize(chart.update);

            return chart;
        });
    });



});

Lecz dostaje błąd gdy podpinam link do danych:
XMLHttpRequest cannot load http://nvd3.org/examples/cumulativeLineData.json. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:61249' is therefore not allowed access.

Jak sobie z tym poradzić?

edytowany 2x, ostatnio: dzek69
hauleth
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:18 dni
0

Nie możesz robić zapytań XHR między witrynami, jeśli na to nie zezwoli witryna odbierająca zapytanie. Musisz pobrać plik, z którym chcesz pracować i pobierać go lokalnie.


Sebastiano
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 4 lata
  • Postów:488
0

Znalazłem coś takiego:
https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi/related?hl=en

Dostep do pliku juz chyba jest ale wurzuca błąd:
Uncaught ReferenceError: nv is not defined

edytowany 2x, ostatnio: dzek69
dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:6 dni
  • Lokalizacja:Rzeszów
0
  1. To niebezpiecze
  2. Chcesz zmusić wszystkich do instalacji dodatku?

Rozwiązanie jest takie, żebyś wysyłał request o te dane JSON do własnego serwera. A Twój serwer może je ściągać z zewnątrz jeżeli jest potrzeba.


Sebastiano
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 4 lata
  • Postów:488
0

Możesz podać jakiś przykład jak to zrobić mniej więcej?

edytowany 1x, ostatnio: dzek69
dzek69
Używaj przycisku "Odpowiedz", nie "Cytuj"! Po co masz cytować poprzedni post w całości? Żeby czytać go jeszcze raz jak nie zrozumiem za pierwszym razem? Cytowanie ma sens przy fragmentach, bądź postach "parę postów wyżej".
dzek69
Praktycznie w każdym poście to robisz.
Sebastiano
faktycznie - dzieki za uwagę
dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:6 dni
  • Lokalizacja:Rzeszów
0

// Na własnym serwerze w korzeniu domeny plik cumulativeLineData.php

Kopiuj
readfile ('http://nvd3.org/examples/cumulativeLineData.json');

// a kod js:

Kopiuj
d3.json('/cumulativeLineData.php', function (data) {

Ale na nv is undefined Ci to nie pomoże. Czym ma być to nv to niestety nie wiem - brak większej ilości kodu oraz informacji skąd pochodzi. Wiem, że ślepe kopiowanie przykładów to zły pomysł.


edytowany 1x, ostatnio: dzek69
Sebastiano
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 4 lata
  • Postów:488
0
dzek69 napisał(a):

Ale na nv is undefined Ci to nie pomoże. Czym ma być to nv to niestety nie wiem - brak większej ilości kodu oraz informacji skąd pochodzi. Wiem, że ślepe kopiowanie przykładów to zły pomysł.

Też mnie to właśnie dziwi. Niby taka wielka biblioteka do wykresów a taka elementarna rzecz nie jest wytłumaczona..:(

hauleth
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:18 dni
0

Skoro używasz nakładki do wykresów to wypadało by się z nią zapoznać: http://nvd3.org/


Sebastiano
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 4 lata
  • Postów:488
0
dzek69 napisał(a):

// Na własnym serwerze w korzeniu domeny plik cumulativeLineData.php

Kopiuj
readfile ('http://nvd3.org/examples/cumulativeLineData.json');

Ok, kopiuje sobie tego jsona do siebie na serwer (takich pliczków będe miał kilka). Możesz mi dokładnie wyjaśnic o co chodzi z "korzeniem domeny". Mam to na zwykłym serwerze (z hostingera). Czyli gdzie dokładnie musze wstawić "readfile" ? (sorki za takie elementarne pytania ale nie moge sie doszukać tego)

edytowany 1x, ostatnio: Sebastiano
dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:6 dni
  • Lokalizacja:Rzeszów
0

chodzi o to, że zalinkowałem w js zaczynając od slasha. czyli jak jesteś na podstronie http://domena.pl/dupa/3.html to taki zapis pobierze od korzenia domeny czyli http://domena.pl/ czyli http://domena.pl/cumulativeLineData.json


Sebastiano
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 4 lata
  • Postów:488
0

aa, rozumiem - myslałem że to jakaś głębsza myśl:) Tylko co w momencie gdy mam ten plik na moim serwerze a aplikację cały czas piszę i testuje na localhoscie (mnie będzie problemu z pobraniem tego pliku?) ?

edytowany 1x, ostatnio: Sebastiano
dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:6 dni
  • Lokalizacja:Rzeszów
1

no to na localhoście też możesz mieć taki plik php


Sebastiano
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 4 lata
  • Postów:488
0

aa, czyli pliki serwerowe podpiąć dopiero w momencie wdrożenia tak, a obecnie w ramach testów i pisania pobierać je sobie u siebie lokalnie?

edytowany 1x, ostatnio: Sebastiano
dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:6 dni
  • Lokalizacja:Rzeszów
0

no a jaką widzisz różnicę czy to leży tu czy tu?


Sebastiano
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 4 lata
  • Postów:488
0

Chodzi mi o to że jeżeli lokalnie bede pobierał ten plik nawet z mojego serwera w sieci to może być :
not Access-Control-Allow-Origin

edytowany 1x, ostatnio: Sebastiano
dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:6 dni
  • Lokalizacja:Rzeszów
1

no tak, nie podawaj domeny przy requestach ajax i ciągnij ze swojej własnej (czyli localhost u Ciebie na kompie)


Sebastiano
Ok, dzięki za pomoc:)
Gregorius
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 8 lat
  • Lokalizacja:Poznań
  • Postów:102
0
Sebastiano napisał(a):

Poszukuję biblioteki do wykresów z takimi wymaganiami, czy ktoś jest w stanie coś konkretnego polecić i miał z tym styczność?

  1. Głównie wykresy liniowe (to nie problem)
  2. responsywność
  3. przewijanie wykresu w prawo i lewo (żadnej biblioteki z ta funkcją nie znalazłem)
  4. dane będą w JSON, lecz wykres ma być generowany poprzez podanie interwału czasowego "od do" (np. wartości temperatury od 2 marca 2012 do 19 grudnia 2012) i tylko te dane muszą być pobrane z danego pliku JSON.

JSXGRaph

Sebastiano
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 4 lata
  • Postów:488
0

Wyszukałem jeszcze highcharts.js - biblioteka jest darmowa dla rozwiązań niekomercyjnych. Czy ktoś korzystał?

Gregorius
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 8 lat
  • Lokalizacja:Poznań
  • Postów:102
0

Jeszcze raz. Przyjrzałeś się http://jsxgraph.uni-bayreuth.de/wp/ Bo ma i przewijanie i skalowanie i bardzo wiele możliwości. potężna biblioteka

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)