注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
Code Workbook では、オープンソースの可視化ライブラリを使用してデータの可視化を表示できます。これらの可視化は、たとえば Notepad ドキュメントでほかのユーザーと共有できます。
Python では、Code Workbook は Matplotlib、Seaborn、Plotly を使用した可視化をサポートしています。
Matplotlib を使用する場合、matplotlib.pyplot.show() を呼び出すと、生成されたプロット画像がトランスフォームの出力に保存され、ユーザーインターフェースに返されます。これにより、カスタマイズしたプロットを作成できます。ほかの可視化と同様に、グラフ内のトランスフォームを右クリックして画像をダウンロードを選択すると、この画像をダウンロードできます。
Matplotlib を使用して可視化を描画するトランスフォームの例を以下に示します。
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22def viz_plot_univariate_distribution_using_histogram(input_dataset): import matplotlib.mlab as mlab import matplotlib.pyplot as plt INPUT_DF = input_dataset SELECTED_COLUMN = "column_to_plot" # これは数値列である必要があります NUM_BINS = number_of_bins # 選択した列のヒストグラムを作成します bins, counts = INPUT_DF.select(SELECTED_COLUMN).rdd.flatMap(lambda x:x).histogram(NUM_BINS) # ヒストグラムを描画します fig, ax = plt.subplots() ax.hist(bins[:-1], bins, weights=counts, density=True) ax.set_xlabel(SELECTED_COLUMN) ax.set_ylabel('Probability density') ax.set_title(r'Histogram of ' + str(SELECTED_COLUMN)) # ylabel が見切れないように余白を調整します fig.tight_layout() plt.show()
Matplotlib をベースとするデータ可視化ライブラリである Seaborn を使用する場合、画像をフロントエンドに返すには matplotlib.pyplot.show() を呼び出す必要があります。
プロファイルを編集するか、ワークブックの環境をカスタマイズすることで、環境に Seaborn を追加できます。
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14def seaborn_example(pandas_df): import seaborn as sns import matplotlib.pyplot as plt sns.set_theme() # 可視化を作成します sns.relplot( data=pandas_df, x="price", y="minimum_nights" ) # プロットを取得するにはこれが必要です plt.show()
Copied!1 2 3 4 5 6def seaborn_violinplot(pandas_df): import seaborn as sns import matplotlib.pyplot as plt sns.violinplot(x="col_A", y="col_B", data=pandas_df); plt.show()
デフォルトでは、Code Workbook の Matplotlib と Seaborn の可視化は PNG 形式で出力されます。Matplotlib と Seaborn の可視化を SVG 形式で出力するには、プロットの前に次のコードを使用します。
set_output_image_type('svg')
または、よりわかりやすくするためにヒントを使用します。
Copied!1 2 3@output_image_type('svg') def chart(input): # ここでチャートを作成します
Matplotlib を使用して、ラテン文字以外の文字を使用する言語(日本語や韓国語など)やデフォルト以外のフォントでラベルやテキストをプロットするには、画像の描画時に Matplotlib で使用するフォントファミリーを明示的に指定する必要があります。詳細については、デフォルトでインストールされている利用可能なフォントの一覧を参照してください。
Matplotlib のフォントを指定する方法の例を以下に示します。
def japanese_korean_matplotlib_example():
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
from matplotlib import rcParams
# フォントファミリーを Noto Sans CJK フォントパックに設定します
rcParams['font.family'] = 'Noto Sans CJK JP'
# データを作成します
x = [10,20,30,40,50]
y = [30,30,30,30,30]
# 線を描画します
plt.plot(x, y, label = "ライン1")
plt.plot(y, x, label = "선2")
plt.xlabel("X-軸")
plt.ylabel("Y-축")
plt.legend()
plt.title("日本語ラベル図の例 // 한글 라벨 도표의 예시")
plt.show()

Matplotlib 2.* では、.ttc フォントファイルは Matplotlib によって自動的に検出されません。3.* にアップグレードするか、フォントのファイルパスを Matplotlib のフォントマネージャーに直接追加してください。
Copied!1 2 3 4from matplotlib import rcParams import matplotlib.font_manager as fm fm.fontManager.ttflist += fm.createFontList(["/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc"]) rcParams['font.family'] = 'Noto Sans CJK JP'</pre>
Plotly は、インタラクティブな画像を作成できる可視化ライブラリです。Plotly を使用するには、まず環境に含まれていることを確認してください。
fig.show() を呼び出すと、生成されたプロット画像がトランスフォームの出力の一部として保存され、ユーザーインターフェースに返されます。Plotly Express を使い、Plotly で可視化を描画するトランスフォームの例を以下に示します。Plotly Express には iris データセットがあらかじめ読み込まれています。
Copied!1 2 3 4 5def plotly_example(): import plotly.express as px df = px.data.iris() fig = px.scatter(df, x = "sepal_width", y = "sepal_length", color = "species") fig.show()
トランスフォームを実行すると、可視化タブに Plotly の可視化が表示されます。可視化は全画面モードで表示することを推奨します。拡大・縮小やグラフ上での選択などの機能を使用できます。

アニメーション付きの可視化を生成する、より複雑な例を以下に示します。
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21def plotly_example_2(): import plotly.graph_objects as go fig = go.Figure( data=[go.Scatter(x=[0, 1], y=[0, 1])], layout=go.Layout( xaxis=dict(range=[0, 5], autorange=False), yaxis=dict(range=[0, 5], autorange=False), title="Start Title", updatemenus=[dict( type="buttons", buttons=[dict(label="Play", method="animate", args=[None])])] ), frames=[go.Frame(data=[go.Scatter(x=[1, 2], y=[1, 2])]), go.Frame(data=[go.Scatter(x=[1, 4], y=[1, 4])]), go.Frame(data=[go.Scatter(x=[3, 4], y=[3, 4])], layout=go.Layout(title_text="End Title"))] ) fig.show()
R では、Code Workbook は ggplot2 と plotly を使用した可視化をサポートしています。

Copied!1 2 3 4fare_distribution <- function(titanic_dataset) { hist(titanic_dataset$Fare) return(titanic_dataset) }
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20example_ggplot <- function() { library(ggplot2) theme_set(theme_bw()) # bw テーマを事前に設定します data("midwest", package = "ggplot2") # 散布図 gg <- ggplot(midwest, aes(x=area, y=poptotal)) + geom_point(aes(col=state, size=popdensity)) + geom_smooth(method="loess", se=F) + xlim(c(0, 0.1)) + ylim(c(0, 500000)) + labs(subtitle="Area Vs Population", y="Population", x="Area", title="Scatterplot", caption = "Source: midwest") plot(gg) return(NULL) }
デフォルトでは、ggplot の可視化は PNG として出力されます。R の ggplot の可視化を SVG 形式で生成するには、コメントを使用してヒントを追加します。
Copied!1 2 3 4 5fare_distribution <- function(titanic_dataset) { # image: svg hist(titanic_dataset$Fare) return(titanic_dataset) }
PNG または SVG の出力をカスタマイズするには、組み込みの graphicsFile 変数をファイル名として使用して、png() または svg() 関数を呼び出します。
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13unnamed_1 <- function() { png( filename=graphicsFile, width=800, height=400, units="px", pointsize=4, bg="white", res=300, type="cairo") plot(1:10, 1:10) }
カスタムの svg() 関数を使用する場合は、上記のコメントによるヒントも指定する必要があります。
Copied!1 2 3 4 5 6 7 8 9 10 11unnamed_1 <- function() { # image: svg svg( filename=graphicsFile, width=5, height=9, pointsize=4, bg="white") plot(1:10, 1:10) }
Plotly ↗ を使用すると、インタラクティブなグラフを作成できます。R で Plotly を使用するには、環境に r-plotly パッケージを追加します。フロントエンドにグラフを表示するには、plot() または print() でグラフをプロットします。簡単な例を以下に示します。
Copied!1 2 3 4 5 6 7 8 9 10 11plotly_example <- function() { library(plotly) scatter_plotly <- plot_ly ( x = rnorm(1000), y = rnorm(1000), mode = "markers", type = "scatter" ) plot(scatter_plotly) }
以下の留意事項は、Python と R の両方に適用されます。
scattergl を使用します。以下の Matplotlib の制限事項は、Python に適用されます。
@synchronous_node_execution で各ノードをロックできます。Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19import matplotlib.mlab as mlab import matplotlib.pyplot as plt from matplotlib import rcParams @synchronous_node_execution def thread_safe_node(): # フォントファミリーを Noto Sans CJK フォントパックに設定します rcParams['font.family'] = 'Noto Sans CJK JP' # データを作成します x = [10,20,30,40,50] y = [30,30,30,30,30] # 線を描画します plt.plot(x, y, label = "ライン1") plt.plot(y, x, label = "선2") plt.xlabel("X-軸") plt.ylabel("Y-축") plt.legend() plt.title("日本語ラベル図の例 // 한글 라벨 도표의 예시") plt.show()