そこで、見た目も性能も優れた Datashader を試しています。ただし、すべての例は、大規模な RAM を備えたマシンで実行するか、それほど大規模なデータセットではないマシンで実行する必要があります。大きなプロットを実行しようとすると、16 GB の RAM を爆破するからです。Datashader がデータを処理できることは間違いありませんが、データをロードして区分的にプロットする方法がわかりません。
明確にするために、プロット中ではありませんが、実際にはデータベースからの読み取りを介してこれは失敗します-ただし、Datashader は非常に大きなデータをプロットするためのライブラリであるため、df にすべてをロードして渡す代わりにいくつかのメソッドが必要ですか?
今の私のコード:
from colorcet import fire
import psycopg2
import datashader as ds
import datashader.transfer_functions as tf
con = getCon()
query = """SELECT latitude, longitude FROM mydatabasetable"""
df = pd.read_sql(query, con)
cvs = ds.Canvas(plot_width=400, plot_height=400)
agg = cvs.points(df, 'longitude', 'latitude')
img = tf.shade(agg, cmap=['lightblue', 'darkblue'], how='log')
たとえば、 cvs.points メソッドを数回呼び出すことは可能ですか (したがって、データをいくつかのビットに分割しますか?)