Добавить патч к суставу Seaborn - PullRequest
       20

Добавить патч к суставу Seaborn

0 голосов
/ 23 сентября 2018

Я создал патч и хочу применить его на совместном участке в Сиборне.Когда я пытаюсь применить патч, он либо разбивает графики на две графики, либо, если я изменяю атрибут kind в функции jointplot с kde на что-либо еще, выдает ошибку inner got multiple values for keyword argument 'ax'.

Когда я пытаюсь применить это решение , переменная fg не имеет атрибута axes и не работает.

В приведенном ниже коде, если яиспользуйте kind = "scatter" и пропустите ax, я получаю пустой вывод, затем Jointpolot.Если я использую kind = "scatter" и добавляю ax = ax, я получаю вышеупомянутую ошибку.Если я использую kind = "kde" и ax = ax, я получаю следующие изображения:

Image 1

Image 2

Мой код:

import descartes
import fiona
import matplotlib.pyplot as plt
import seaborn as sns
from shapely.geometry import shape
import pandas as pd
import time
#
start_time  = time.time()
input_csv   = r"C:\path\to\a\csv\with\coordinates.csv"
shapefile   = r"C:\path\to\a\fun\shapefile.shp"
df          = pd.read_csv(input_csv, delimiter = ",")
df          = df[df["Latitude"] > 37.70833]
lat         = "Latitude"
lon         = "Longitude"
fig         = plt.figure()
ax          = fig.add_subplot(111, frameon = False)
shp         = fiona.open(shapefile)
pol         = shp.next()
geom        = shape(pol["geometry"])
un_sf       = geom.envelope.symmetric_difference(geom)
un_sf_patch = descartes.PolygonPatch(un_sf)
ax.add_patch( un_sf_patch )
my_fig      = sns.jointplot(x = lon, y = lat, data = df, color = "grey", kind = "scatter")
end_time    = round(time.time() - start_time, 5)
print "Seconds elapsed: {0}".format(end_time)

Как я могу добавить патч к моему совместному участку Seaborn в одном графике?

1 Ответ

0 голосов
/ 24 сентября 2018

Морской Рог jointplot создает свою фигуру вместе с 3 осями.

g = sns.jointgrid(..)
g.ax_joint   # big axes in the middle
g.ax_marg_y  # marginal axes
g.ax_marg_x

Здесь вы хотите добавить свой патч к ax_joint.

g = sns.jointgrid(..)
g.ax_joint.add_patch( un_sf_patch )
...