視覚化ライブラリを上手に使いこなし、使用プロセスにおける困難な問題に対処するにはどうすればよいでしょうか?
基本的な使用方法については、GeeksforGeeks をご覧ください。
難しい問題はまず https://stackoverflow.com を検索してください
公式ドキュメントを使用してみてください: numpy learning access
https://numpy.org/doc/stable/user/index.html
例えば:
アルタイルの使い方についての質問です。
https://stackoverflow.com/questions/64112919/altair-how-to-change-color-of-line-in-line-chart?rq=3
以下の例では、エクスポートには緑のスキームを使用し、インポートには赤のスキームを使用したいと考えています。チャートを個別に作成すると、すべてが正常に機能し、割り当てた配色が得られます。
ただし、グラフを接続すると、両方のグラフに赤色の配色が表示されます。
import pandas as pd
fruits = ['Apples', 'Pears', 'Nectarines', 'Plums', 'Grapes', 'Strawberries']
years = ["2015", "2016", "2017"]
exports = {
'fruits' : fruits,
'2015' : [2, 1, 4, 3, 2, 4],
'2016' : [5, 3, 4, 2, 4, 6],
'2017' : [3, 2, 4, 4, 5, 3]}
imports = {
'fruits' : fruits,
'2015' : [-1, 0, -1, -3, -2, -1],
'2016' : [-2, -1, -3, -1, -2, -2],
'2017' : [-1, -2, -1, 0, -2, -2]}
df_exp = pd.DataFrame(exports)
df_imp = pd.DataFrame(imports)
import altair as alt
cols_year_imp = df_imp.columns[1:]
cols_year_exp = df_exp.columns[1:]
imp = alt.Chart(df_imp).transform_fold(
list(cols_year_imp)
).mark_bar(
tooltip=True
).encode(
x='value:Q',
y='fruits:N',
color=alt.Color('key:O', scale=alt.Scale(scheme='reds'))
)
exp = alt.Chart(df_exp).transform_fold(
list(cols_year_exp)
).mark_bar(
tooltip=True
).encode(
x=alt.X('value:Q',title="Export"),
y='fruits:N',
color=alt.Color('key:O', scale=alt.Scale(scheme='greens', reverse=True)),
order=alt.Order('key:O', sort='ascending')
)
# imp | exp
imp
exp
alt.hconcat(imp, exp)
折れ線グラフ
次の例を考えてみましょう。
コードセグメントX、Yの定義構文に注意して、altairの階層化チャートに凡例を追加してください
結果のグラフに、青い線が最高温度を示し、赤い線が最低温度を示すことを示す凡例を追加したいと思います。これを達成する最も簡単な方法は何でしょうか?
import altair as alt
from vega_datasets import data
df = data.seattle_weather()
temp_max = alt.Chart(df).mark_line(color='blue').encode(
x='yearmonth(date):T',
y='max(temp_max)',
)
temp_min = alt.Chart(df).mark_line(color='red').encode(
x='yearmonth(date):T',
y='max(temp_min)',
)
temp_max + temp_min
質問の解決策で見ました:Altairのマーカー階層化チャートは、コードで色やサイズなどが設定されている場合にのみ凡例を追加します。
通常はカテゴリ列が使用されますが、列全体がプロットされるため、ここではこれは不可能です。ラベルは列名である必要があり、現在は y 軸ラベルに表示されています。
変数を正しくエンコードできるように、折りたたみ変換を実行します。
import altair as alt
from vega_datasets import data
df = data.seattle_weather()
alt.Chart(df).mark_line().transform_fold(
fold=['temp_max', 'temp_min'],
as_=['variable', 'value']
).encode(
x='yearmonth(date):T',
y='max(value):Q',
color='variable:N'
)
ケース 2: 株価の折れ線グラフ
ストロークされたポイントマーカーを含む折れ線グラフ
ややこしいのは、「mark_line」ポイントの処理方法です。
Vega の例では、「point」を使用してから、「filled」を False に設定する必要があります。
import altair as alt
from vega_datasets import data
source = data.stocks()
alt.Chart(source).mark_line(
point={
"filled": False,
"fill": "white"
}
).encode(
x='date',
y='price',
color='symbol'
)
Altair ではどのように適用できますか? 「dot」を true または「{}」に設定するとドット マーカーが追加されることがわかりましたが、パディングを機能させる方法がわかりません。
ポリライン + ポイント
この記事はmdniceマルチプラットフォームによって公開されています