Altair:Log10軸を目的の間隔(ドメイン)にトリミングします

和仁

PythonでAltairを使用して、指定された値でLog10軸をトリミングすることは可能ですか?対数目盛で5〜50の間だけを表示したいと思います。

以下は私のコードと私が得る画像です:

import altair as alt
import pandas as pd

from vega_datasets import data
cars = data.cars()

nice = pd.DataFrame([{'x_min': [0],
                    'x_max': [240],
                    'y_min': [5],
                    'y_max': [10]}])

good = pd.DataFrame([{'x_min': [0],
                    'x_max': [240],
                    'y_min': [10],
                    'y_max': [20]}])

bad = pd.DataFrame([{'x_min': [0],
                    'x_max': [240],
                    'y_min': [20],
                    'y_max': [50]}])

mpg_nice_fill = alt.Chart(nice).mark_rect(color= 'green', opacity=0.2).encode(
    x='x_min:Q',
    x2='x_max:Q',
    y='y_min:Q',
    y2='y_max:Q'
)

mpg_good_fill = alt.Chart(good).mark_rect(color= 'yellow', opacity=0.2).encode(
    x='x_min:Q',
    x2='x_max:Q',
    y='y_min:Q',
    y2='y_max:Q'
)

mpg_bad_fill = alt.Chart(bad).mark_rect(color= 'red', opacity=0.2).encode(
    x='x_min:Q',
    x2='x_max:Q',
    y='y_min:Q',
    y2='y_max:Q'
)

chart = alt.Chart(cars).mark_point().encode(
    x='Horsepower',
    y= alt.Y('Miles_per_Gallon', scale= alt.Scale(type= 'log')),
    color='Origin',
)

alt.layer(chart + mpg_nice_fill + mpg_good_fill + mpg_bad_fill + chart
         )

ここに画像の説明を入力してください

これはおそらく科学的には正しいですが、白い領域(< 5 mpgおよび> 50 mpgドメイン)を削除すると、見た目が良くなる思いますただし、のdomain = (5, 50)alt.Y()私には機能しません。

jakevdp

domain引数は対数目盛で機能しますが、ドメインは底の整数乗で開始および終了する必要があり、他の値は次の整数乗に丸められます。

たとえば、デフォルトの基数10ドメインは次のとおりです。

import altair as alt
import pandas as pd

data = pd.DataFrame({'x': [1, 10, 100]})

alt.Chart(data).mark_point().encode(
    x=alt.X('x', scale=alt.Scale(type='log'))
)

ここに画像の説明を入力してください

これは、制限が1と256に設定されたベース2ドメインです。

alt.Chart(data).mark_point().encode(
    x=alt.X('x', scale=alt.Scale(type='log', base=2, domain=[1, 256]))
)

ここに画像の説明を入力してください

残念ながら、Vega-Liteは、ログドメインをベースの非整数の累乗に設定する方法を提供していません。

上記のグラフの場合、8〜64の2を底とする対数目盛が適している可能性があります。

alt.Chart(cars).mark_point().encode(
    x='Horsepower',
    y= alt.Y('Miles_per_Gallon', scale= alt.Scale(type= 'log', base=2, domain=[8, 64])),
    color='Origin',
)

ここに画像の説明を入力してください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Altair:Log10軸を目的の間隔(ドメイン)にトリミングします

分類Dev

rstudioでalphaおよびlog10メソッドを使用してサンプリングイベントをチェックする必要があります

分類Dev

ImageMagick:画像を同じ領域の別々の画像にトリミングしますが、軸に沿って間隔を空けますか?

分類Dev

インスタンスをローリングに割り当てますが、10秒の時間間隔をリセットします

分類Dev

グラフのX軸のポイント0でグリッド線/間隔を取得する(柔軟な軸スケーリング)

分類Dev

Altairの科学的記数法に軸をスケーリングします

分類Dev

ggplot2のlog10スケール軸でy軸を負の数に展開します

分類Dev

Altair:フィールドを使用してY軸のドメインを指定しますか?

分類Dev

Matplotlibは、x軸上のポイント間の間隔を広げます

分類Dev

Altair-y軸を別のチャートのx軸にリンクします

分類Dev

Y軸ドメインをリセットするmark_area(Altair)

分類Dev

Y軸ドメインをリセットするmark_area(Altair)

分類Dev

1つのコマンドで `ffmpeg`を使用して、オーディオファイルを複数のセグメントにトリミングします

分類Dev

インタラクティブプロットを使用して、Altairの1つの軸のみをスケーリングします

分類Dev

開始/停止間隔のグループごとに列をセグメントに分割します

分類Dev

特定の間隔の要素を最速で1ずつインクリメントします

分類Dev

時間間隔内のイベントの数に従ってSQLのレコードを選択します

分類Dev

Spring @KafkaListenerは、特定の間隔の後にレコードを実行してポーリングします

分類Dev

Rの日付で作成し、Unixタイムスタンプ形式で時間間隔を10ミリ秒増やします

分類Dev

ドキュメントは、空白の名前空間のレンダリングを別個に宣言します。

分類Dev

Rcorrplotは下軸ラベルをトリミングします

分類Dev

SharePointドキュメントフォルダーにストリーミングしたばかりのファイルのIDを取得します

分類Dev

MP3を最後のN秒間にトリミングします

分類Dev

Javaでは、LogとLog10の間にパフォーマンスの違いはありますか?

分類Dev

特定の時間間隔でDataFrameをリサンプリングします

分類Dev

パンダ:10分間隔で時間のヒストグラムをプロットします

分類Dev

軸のドメインは、チャートのレンダリング方法を正確に定義していません

分類Dev

FFMPEG HLS-プレイリストのみを作成するか、エンコードする前にセグメント時間を予測します

分類Dev

postgresqlの10分の時間間隔で行をカウントします

Related 関連記事

  1. 1

    Altair:Log10軸を目的の間隔(ドメイン)にトリミングします

  2. 2

    rstudioでalphaおよびlog10メソッドを使用してサンプリングイベントをチェックする必要があります

  3. 3

    ImageMagick:画像を同じ領域の別々の画像にトリミングしますが、軸に沿って間隔を空けますか?

  4. 4

    インスタンスをローリングに割り当てますが、10秒の時間間隔をリセットします

  5. 5

    グラフのX軸のポイント0でグリッド線/間隔を取得する(柔軟な軸スケーリング)

  6. 6

    Altairの科学的記数法に軸をスケーリングします

  7. 7

    ggplot2のlog10スケール軸でy軸を負の数に展開します

  8. 8

    Altair:フィールドを使用してY軸のドメインを指定しますか?

  9. 9

    Matplotlibは、x軸上のポイント間の間隔を広げます

  10. 10

    Altair-y軸を別のチャートのx軸にリンクします

  11. 11

    Y軸ドメインをリセットするmark_area(Altair)

  12. 12

    Y軸ドメインをリセットするmark_area(Altair)

  13. 13

    1つのコマンドで `ffmpeg`を使用して、オーディオファイルを複数のセグメントにトリミングします

  14. 14

    インタラクティブプロットを使用して、Altairの1つの軸のみをスケーリングします

  15. 15

    開始/停止間隔のグループごとに列をセグメントに分割します

  16. 16

    特定の間隔の要素を最速で1ずつインクリメントします

  17. 17

    時間間隔内のイベントの数に従ってSQLのレコードを選択します

  18. 18

    Spring @KafkaListenerは、特定の間隔の後にレコードを実行してポーリングします

  19. 19

    Rの日付で作成し、Unixタイムスタンプ形式で時間間隔を10ミリ秒増やします

  20. 20

    ドキュメントは、空白の名前空間のレンダリングを別個に宣言します。

  21. 21

    Rcorrplotは下軸ラベルをトリミングします

  22. 22

    SharePointドキュメントフォルダーにストリーミングしたばかりのファイルのIDを取得します

  23. 23

    MP3を最後のN秒間にトリミングします

  24. 24

    Javaでは、LogとLog10の間にパフォーマンスの違いはありますか?

  25. 25

    特定の時間間隔でDataFrameをリサンプリングします

  26. 26

    パンダ:10分間隔で時間のヒストグラムをプロットします

  27. 27

    軸のドメインは、チャートのレンダリング方法を正確に定義していません

  28. 28

    FFMPEG HLS-プレイリストのみを作成するか、エンコードする前にセグメント時間を予測します

  29. 29

    postgresqlの10分の時間間隔で行をカウントします

ホットタグ

アーカイブ