ChartJS-JavaScriptデヌタ芖芚化ラむブラリ



毎幎、コンピュヌタヌ技術の䞖界はたすたすグロヌバルなりェブに忍び蟌みたす。 HTML5は地球を動き回っおいたすが、これたでのずころ、開発ず配垃の速床が䜎䞋する兆候は芋られたせんでした。 冷蔵庫でさえHTML5をすぐに理解し始めるようです

DevExpressでは、この傟向を他の誰にも感じたせん。 そしお、今幎は良い仕事をしたした

habrasocietyはすでに、 新しいPhoneJSフレヌムワヌクを知っおいたす。これにより、経隓豊富なWeb開発者がモバむルデバむスの開発に自信を持぀こずができたす。

ただし、Web開発の叀兞的な偎面を忘れおいたせん。

人々はただむンタヌネットから情報を入手しおいたす。
残念ながら、これらの同じ人々はただ長くお退屈なレポヌトを読むのが奜きではありたせん。
写真は千の蚀葉に倀したす。

それを芋おいる人ず察話するラむブ画像は貎重です。

Web開発者が顧客にラむブチャヌトを衚瀺できるように、 ChartJSデヌタ芖芚化ラむブラリを䜜成したした。

チャヌト しかし、それはすでに存圚したす
もちろんありたす。
しかし、垞に努力し、改善すべきこずがありたす。

改善したいこず



䟋
残念ながら、私は仕事ず政治を混ぜないようにしおいたすので、「公共のむニシアチブ」でクヌルなスケゞュヌルはありたせん。

むンタヌネットの芖聎者の関心を維持するために、実際には1぀のオプションしかありたせん-子猫ず䞀緒にグラフを描く



猫が私たちを囲んでいたす。 倚くのキッチンでの䌚話は遅かれ早かれ、毛皮のようなお気に入りになりたす。

私は疑問に思った-実際、DevExpress'ovtsevがペットを飌っおいる割合は䜕ですか 圌らのお気に入りは䜕ですか、写真から理想の子猫にどれだけ䌌おいたすか、それずも有名な挫画のサむモン猫を連想させたすか

思考は行動を生み出したす。 同僚の間で小芏暡な調査が行われたした。 もちろん、コミック-結局のずころ、私たちはただ子猫に぀いお話しおいるのです -しかし、いく぀かの代衚性ぞの䞻匵。

この調査の結果はナンバヌプレヌトです。

しかし、也燥した数字の看板を芋るのを本圓に楜しんでいるのは特定の割合だけです絊䞎の䌞びを瀺す衚に぀いお話しおいないなら

写真でこのデヌタをよく芋おみたしょう。

䞻に開発に埓事しおいる䌚瀟の猫愛奜家の割合はどのくらいですか


はい、すべおの写真はクリック可胜です、コヌドはこちらにあり、次のすべおの䟋のコヌドを芋぀けるこずができたす

それほど倚くはありたせんが、他方では、それほど倚くはありたせん-ほが4人に1人はすでに4本足の友人ず家を共有しおいるか、たたはその予定です。 そしお、いく぀か-そしお䞀぀ではありたせん

そしお、これらの猫ず猫は誰ですか
䞖界では珟圚玄7ダヌスの猫の品皮がありたす。 ロシアでは玄40の品皮が芋぀かりたすが、さらに少ない品皮も広く芋られたす。 プログラマヌず䞀緒に暮らすのはどんな猫ですか 他の䜕よりも倚くですか

この情報を衚すために、最も単玔なタむプのシリヌズ棒たたは棒グラフを䜿甚できたす。 玙の䞊のこのようなグラフは、1぀の重芁なポむントを䞎えたせん-䞀芋、最も䞀般的な品皮を決定するこずは䞍可胜です、それが生きおいるず想像しおください。 幞いなこずに、最新のWebは完党に察話性ずナヌザヌむンタラクションの䞊に構築されおいたす。 たた、ChartJSを䜿甚するず、ナヌザヌがグラフを操䜜したずきに猫の写真を衚瀺する機胜を远加するこずはたったく難しくありたせん。


ここでプレむできたす 。

そしお、ここで、写真を芋るずき、あなたは疑いや思考を必芁ずしたせん-事実は印象的です玔血皮の猫のいく぀かのタむプは非垞に人気がありたす非垞に゚キゟチックな皮もありたす-通垞のグレヌホワむトレッドは貎族の猫に察する着実な勝利猫ず猫。

ずころで、猫や猫はどうですか
これも簡単に衚瀺できたす。猫ず猫のデヌタを、2぀のデヌタ系列を䜿甚しお衚すこずができる2぀の個別の量ずしお考えおみたしょう。




猫たたは猫、そしおそれ以䞊の人が䜕人いるのかはすでにはっきりず芋えおいたす。 むギリスの猫の数ずシャムの猫の数を比范できたす。
しかし、その埌、どの品皮が党䜓的に倚いかを芋るのは少し悪くなりたした。
チャヌトの改善を継続したす-隣接するバヌの代わりに、同じデヌタを積み䞊げバヌの圢で衚瀺したす




ちなみに、正確な動物の数がたったく面癜くなく、各品皮内の比率のみが重芁である堎合、Full Stacked Barシリヌズを䜿甚しお、数量の芖芚的芁玠を完党に取り陀くこずができたす。




最埌の3぀のグラフは、1行のコヌドのみが人間の知芚にどのように圱響するかを瀺す優れた䟋です。 最小限のコヌドを䜿甚しお、ナヌザヌにいく぀かの考えず結論を説埗し、最も人気のある玔血皮ずその埌の英囜品皮の猫ず猫の比率がほが同じであるこずを確認できたす-これは最初のグラフには衚瀺されたせんでした。 しかし、最埌に完党に倱われた量で...

唯䞀の良い解決策は、ナヌザヌが芋たいものず方法を自分で遞択できるようにするこずです。



グラフの皮類を動的に倉曎するためのものであり、゚ゞプトの括匧を数える3行のコヌドで実珟できたす。ChartJSを䜜成したした 。

数量は猫専甚の唯䞀の指暙ではありたせん。
たずえば、猫ファミリヌの兞型的な代衚ずしお同じ成功を収めた人はほずんどいないが、圌が過去24時間飢えおいるこずを人々に玍埗させるこずができる。 倚くの堎合、猫が結果ずなり、䜓重の所有者に埐々に远い぀きたす。

DX猫の䜓重はいくらですか どの猫が最軜量で、どれが最も重いですか そしお、それは品皮に䟝存したすか
各品皮の平均䜓重ず、それらの代衚がどの皋床到達するかを芋おみたしょう。 RangeBarおよびRangeAreaシリヌズタむプは、範囲の衚瀺に最適です。



はい、残念ながら、いく぀かの猫は単䞀のコピヌに存圚したす。圌らにずっお、平均䜓重は圓然圌ず䞀臎したす。サンプルコヌドはこちらです 

どの品皮が最も思いやりのある目を持぀こずができるかは、すでに埐々に明らかになっおきおいたす
さお、たたは暗い路地で恐れるべき人...

もちろん、䞻なこずは、猫に逌をやる際に極端なこずはできないずいうこずを思い出すこずです。 それどころか、黄金の平均を守る必芁がありたす



結局、食べ過ぎはキャラクタヌを損なう可胜性がありたす...少なくずも特定の量の摂食が猫の気分にどのように圱響するかを事前に評䟡する方がよいでしょう。



サンプルコヌドはこちらです。サンプルを䜜成する際、デヌタは著者の感情に基づいお遞択されたものであり、1匹の動物が負傷したわけではありたせん

埓業員間の猫の幎霢の興味深い分垃。 グラフには、若い猫ぞの明確なゞャンプがありたす。 このピヌクでは、少し叀い動物のスケゞュヌルを詳现に怜蚎するこずはできたせん。 ここでは、チャヌトをスケヌリングする機胜を䜿甚できたす。



グラフのスケヌリングの䟋のコヌド。

深刻床をもう少し䞋げおみたしょう

家に珟れお、猫は家党䜓を占有したす。 圌女の滞​​圚の痕跡はどこにでもありたす。
平均的な猫は飌い䞻の衣服にどのくらいの毛を残しおいたすか もちろん、原則ずしおそれが終了する堎合...れロに等しい倀だけでなく、そのような倀がないこずを芖聎者に瀺す必芁がある堎合があるためです。



サンプルコヌドNULL倀

さお、最埌のポむントは、私たちの職業に特化した別の問題です。
お気に入りのホストプログラミング蚀語は、動物のネコ党䜓にどのように圱響したすか

さお、もちろんここでは、「ネコ」の抂念を䜕らかの圢で定量化する必芁がありたす...いく぀かの議論の埌、2぀の基準が遞択されたした。
  1. 尟の長さ;
  2. ゲヌム䞭にオヌナヌが受け取ったスクラッチの数。

これらの2぀の指暙は異なる単䜍で枬定されるこずを理解する必芁がありたす-最初の単䜍はセンチメヌトル、2番目の単䜍は単䜍りェル、たたは数十単䜍です。 それらを1぀の軞に衚瀺するこずは孊術的に間違っおいたす。
グラフに2番目の軞を远加し、最初のグラフをメむン軞に関連付け、2番目のグラフを远加したばかりの軞に関連付けたす。
グラフを読みやすくするために、デヌタを描画するのず同じ色でグラフを描画し、軞の1぀をキャンバスの右端に転送するこずもできたす。
この写真は次のずおりです。




写真からの結論は非垞に興味深いものです。 C ++は、議論の䜙地のない尟の長さのリヌダヌです-そしお、それは驚くこずではありたせん Delphiはかなり予期せずそれに远埓し、かなり予期せぬPhotoshopアクションスクリプトはトップ3を閉じたす-デザむンチヌムの猫がそれを詊みたずいう匷い疑念がありたす...ずころで、圌らはクロヌフィヌルドでかなり自信を持っお瀺したした... C猫 これらは明らかに本物の動物です

ただし、ここには問題がありたす。 グラフには平均倀が衚瀺されたす。 おそらく、それらを分析しお、手元に数字しかなかったでしょう。
グラフで、調査の倀の分垃のコリドヌを远加するず、図が倉わりたす。



Cの平均倀は、倧きいものの、倀の分垃のほが最䞋郚にあるこずがわかりたす。 ぀たり、C猫の倧半は普通の人間の友人です。 1぀以䞊の猫のタヌミネヌタヌがおそらく高い平均倀の原因です。

これで、DX猫の簡単な芖芚分析を締めくくりたしょう。

分析甚デヌタに぀いお
はい、避けられない質問を芋越しお-実際に埓業員を察象にオンラむン調査を行いたした。 人数を蚈算する際に、本瀟の埓業員の90がこの投祚に気づき参加したず想定し、この想定に基づいお人数のグラフを䜜成したした。
品皮の問題は自由で、無料で埋められたした。 最埌に、結果を凊理する必芁がありたした。 品皮「セミシャム」の代衚はシャムで蚘録されたした。 品皮「雑皮」、「普通」、「赀」、「トゥヌラマシュザノォヌツカダ」の誇り高い代衚者は、「非近亀系」のカテゎリにさえ入れられたした。 䞀般的に、すべおは実際の統蚈のようです
䟋倖は、猫が残した毛の量に専念するグラフず、摂食に応じた猫の気分を瀺す図衚です。 これらの2぀の芖芚化は、完党に著者の想像の産物です。
ずにかく、科孊ずしおの統蚈の詳现を芚えおおく䟡倀がありたす。 忘れないでください-1884幎にキュりリを食べた人の100はすでに死んでいたす。 きゅうりに泚意しおください


そしお、子猫のほかに、これらのチャヌトは䜕かに適しおいたすか

そう信じおいたす。

もちろん、䞊蚘の私の分析はしばしば明らかにコミックでした。

しかし、私たちの猫の䟋を䜿甚しお、デヌタの芖芚化に察する非垞に深刻なアプロヌチをいく぀か瀺したした。 グラフ圢匏で衚珟されたデヌタが特定の数倀の認識をどのように倉化させ、グラフのタむプの倉化がこれらの図を考慮する芖点をどのように倉化させるかを瀺したす。

すべおのグラフは完党に掻気があり、さたざたな圢匏でナヌザヌずの積極的な察話を可胜にしたす。

グラフの皮類の透過的な倉曎により、ナヌザヌは同じデヌタをさたざたな角床から芋お、新しいパタヌンを導き出し、新たな結論に達するこずができたす。

むンゞケヌタを䜿甚しおナヌザヌの遞択を評䟡するず、ナヌザヌの泚意を匕き付け、決定の結果をより適切に衚瀺できたす。

広範囲のデヌタを評䟡し、小さな範囲内の局所的な倉化を分析できるようにするには、グラフのスケヌリングが必芁になるこずがよくありたす。

もちろん、私たちのラむブラリは実際のプロゞェクトで䜿甚されおいたす。

鋌の焌き戻し方法

アゞャむル開発の原則に完党に準拠しお、最初のむテレヌションの埌、ラむブラリを近隣の郚門の慈悲に委ねたした。 実際のプロゞェクトで䜿甚し、人々からフィヌドバックを受け取るこずほど、補品の開発に圹立぀ものはありたせん。

技術サポヌト郚門は、品質ず速床を求める氞遠の闘いに専念するWebサむトにそれらを組み蟌みたした。 バグ远跡システムずの統合に䜿甚されおいた内郚郚門。 そしお、テレビの各フロアのキッチンでは、郚門ごずのバグ数ずバグ数のダむナミクスのグラフでミニサむトが回転しおいたすこれらのグラフずキッチンでの肝臓消費のグラフを比范したいずいう願望から長い間蚪問されおいたすが、盞関関係を刀断したす... 。

したがっお、できるだけ早くフィヌドバックを受け取るこずができたした。

受け取ったフィヌドバックに基づいお、ラむブラリは拡匵および拡匵されたした。

私たちのチヌム自䜓も、パフォヌマンス統蚈ツヌルでチャヌトを䜿甚しおいたす。 もちろん、C ++で曞かれたC ++コンパむラヌずはほど遠いですが、それでもいいです

リリヌスに近づくず、ラむブラリはより深刻なものに䜿甚されるようになりたした。 ラむブラリ芁玠は、新しいDevExpress補品-ダッシュボヌドで䜿甚され、財務デヌタを含む倧量のデヌタの分析専甚です。 DevExpress Webサむトのダッシュボヌドの䟋 。

ChartJSりィゞェットは、゚ンタヌプラむズ゜リュヌションに適しおいるだけではありたせん。 ラむブラリは腺ずマむクロコントロヌラで非垞にうたく機胜したす-virt2real゜リュヌションず䞀連の気象センサヌを組み合わせるこずで実蚌されたした-結果はリアルタむムのグラフで著者のブログで利甚できたす。

ボンネットの䞋

むンタヌネット䞊で興味深いものを芋たかなり倚くの人々Habrを蚪問の反応は、興味深いものを右クリックしお[芁玠の怜査]を遞択するこずです。

ネタバレをさせおください。

グラフのレンダリングには、SVGを䜿甚したす。 このテクノロゞヌは、ほずんどの最新のブラりザヌでうたく機胜したす。ハヌドりェアアクセラレヌションを䜿甚するこずもあり、必芁に応じおCSSスタむルシヌトを䜿甚しおスタむル蚭定するこずもできたす。 レンダリングは、JavaScript゚ンゞンを長時間占有せず、ナヌザヌむンタヌフェむスの応答性の䜎䞋を匕き起こさないように、非同期的に耇数の段階で実行できたす。

「チャヌト」->「デヌタ分析」->「䌁業セクタヌ」->「windows xp」-> IE 8の仕様ずチェヌンのため、VMLテクノロゞヌを䜿甚しおこのブラりザヌをサポヌトする以倖に遞択肢はありたせんでした。 遷移は内郚で発生し、ナヌザヌには芋えたせん。

これは、チャヌト自䜓が䟝存性泚入の原則に埓っお倚くの点でアヌキテクチャ的に蚭蚈されおいるずいう事実に぀ながりたすDRYずSOLIDも空の略語ではありたせん。 私はこのアプロヌチの倧ファンであり、匷く掚進しおいたす。 JavaScriptの䞖界では、このアプロヌチにより、今埌個別に説明する予定の興味深い機胜がいく぀か獲埗されたした。

各芖芚芁玠は独立したオブゞェクトずしお実装され、入力でいく぀かの䟝存オブゞェクト芖芚および非芖芚を受け取りたす。

画面座暙を蚈算するためのほずんどすべおの芁玠は、「translator」オブゞェクトに䟝存しおいたす。このオブゞェクトのタスクは、サブゞェクト領域の単䜍「ビゞネス倀」を画面のピクセルに倉換するこずです。 したがっお、この倉換は耇補されず、適切に分離されおおり、䞀元化された倉曎に容易に圹立ちたすたずえば、チャヌトのズヌムを実行する堎合。

コンポヌネント間の䟝存関係をグラフの圢で衚すず、かなりきれいな階局ピラミッドが衚瀺されたす-そしお、「りェブ」に滑り蟌たないように倚くの努力をしたす。それは必然的に、修正が困難なコヌドで終わり、ナヌザヌにずっおは最も単玔な機胜を埅ちたす。 すでに倚くの興味深いものを提䟛しおいたすが、ただ倚くの蚈画がありたす

玔粋なJSからりィゞェットを䜜成する叀兞的なアプロヌチに加えお、急速に成長しおいるKnockoutフレヌムワヌクを完党にサポヌトしおいたす。これにより、MVVMアプロヌチを䜿甚しおHTML + JavaScriptアプリケヌションを䜜成できたす。 最も近いナヌスケヌスは、 PhoneJSで蚘述されたDXWorkoutアプリケヌションです。

人々にずっおアヘンはどれくらいですか

あなたが愛奜家であるならば、あなたが瀟䌚のために働いおいるなら、あなたがオヌプン゜ヌスプロゞェクトを行っおいるなら、それはあなたにずっお完党に無料になるでしょう。

商業プロゞェクトがあり、私たちの図曞通のおかげで、黄金の川があなたに流れたす-商業利甚のための䟡栌を求めたす。 これで䜕が埗られたすか 任意の数のサむトおよびプロゞェクトでラむブラリを䜿甚する暩利。 幎間サブスクリプション期間䞭にサポヌトチヌムに無制限の質問を送信したす。 ラむブラリを補品ず䞀緒に配垃する機胜必芁に応じお、ナヌザヌが修正および補足する堎合もありたすは、゜ヌスコヌドが公開されおいたす。

どこで芋たり詊しおみたりできたすか

ラむブラリはChartJS Webサむトからダりンロヌドできたす。

ChartJSデモギャラリヌには倚数の䟋が公開されおおり 、りィゞェットのさたざたな構成オプションに粟通し、機胜に粟通し、オンラむンでコヌドを操䜜できたす。

このサむトでは、機胜、方法、デヌタ芖芚化のアプロヌチ、正しいデヌタ衚瀺の遞択方法、および関連事項に぀いお説明するブログを定期的に発行したす。

私はそこに子猫の存圚を保蚌するこずはできたせんが、これは非垞に可胜性が高いです。

みなさんの泚意ず良い気分に感謝したす
良い気分は垞に深刻なこずをするのに圹立ちたす。

PS玠晎らしいサむトplacekitten.comは 、蚘事ず䟋、ロシアのりィキペディアのセクションのいく぀かの写真 猫に関する印象的なセクションがありたす、著者が芋぀からなかったいく぀かの写真に䜿甚されたしたが、私は圌らに非垞に感謝しおいたす。 そしおさらに-時間を割かず、猫に぀いお教えおくれた同僚に。
サンプルはJSFiddleでホストされ、GitHubリポゞトリで利甚できたす 。

Source: https://habr.com/ru/post/J185210/


All Articles