2017-05-12 13 views
0

私は、線図を構築するために、Pythonでnvd3を使用します。ここでは、コードです:nvd3 pythonと軸

from nvd3 import lineChart 
chart = lineChart(name="lineChart", x_is_date=True, x_axis_format="%Y") 

xdata = [599644800000,694252800000,788947200000,883641600000,1167638400000,1199174400000,1230796800000,1262332800000,1357027200000] 
ydata = [26.2, 22.4, 17.7, 14.8, 9.29, 8.08, 7.48, 6.96, 5.5] 

extra_serie = {"tooltip": {"y_start": "There are ", "y_end": " calls"}} 
chart.add_serie(y=ydata, x=xdata, name='Current Smokers ', extra=extra_serie, **kwargs1) 
chart 

は、ここチャートである:私は3つの質問を持っている enter image description here

  1. x軸は、9つの要素を持っていますが、チャートはわずか3それらのを示しています。 9つの要素すべてを表示するためにコードを変更するにはどうすればよいですか?
  2. y軸要素の種類はパーセンテージです。どのように%をy軸に追加できますか?
  3. nvd3は通常の形式で日付を受け入れないため、ミリ秒単位で変換する必要があり、少し面倒です。何ミリ秒の日付形式を取り除き、単純に1998年、1995年などを使うことができますか?

答えて

1

私はPythonでNVD3を使用していませんが、JavaScriptライブラリを使用してNVD3の使い方を指摘できます。あなたの質問に対する答えがここにあります。

  1. デフォルトでは、NVD3はチャートの幅に基づいてチャートに表示されるティックの量を減らします。

    a)グラフ上でより多くのティックを表示する方法XAxisは、グラフの幅を広げることです。おそらく最善の方法ではないが、それはうまくいく。

    chart = lineChart(..., width="500")

    b)もう1つの方法は、チャートに表示するポイントを定義し、それをチャートとして配列として渡すことです。 Check line 29 here

    chart.xAxis.tickValues(tickArr);

    目盛りラベルは、グラフの幅とあなたがチャートに表示しようとしている量に応じて、重複する可能性がある点に注意してください

  2. の終わりに%を追加レンダリング時に目盛り。それはdate & time parsing here

    var format = d3.time.format("%Y-%m-%d"); 
    format.parse("1998-02-11"); // returns a Date 
    format(new Date(1998, 02, 11)); // returns a string 
    

・ホープ、このヘルプあなたのe.g: 1998-02-11詳しい情報があるよう

chart.yAxis.tickFormat(function (d) { 
    var format = d3.format(",.f"); 
    return format(d) + '%'; 
}); 
  • あなたは、日付を渡すことができます。

  • 関連する問題