亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何獲取沒有填充的聯合圖標記

如何獲取沒有填充的聯合圖標記

慕田峪9158850 2023-08-08 14:56:24
matplotlib.pyplot.scatter()有一個facecolors=None參數將使數據點看起來內部是空心的。如何獲得相同的外觀seaborn.jointplot()?在早期版本的seaborn中也發現了相同的論點,但由于某種原因在最新版本(0.11)中被刪除。
查看完整描述

2 回答

?
浮云間

TA貢獻1829條經驗 獲得超4個贊

  • 由于seaborn是 的高級 API?matplotlib,因此這似乎反映了 中的功能matplotlib

  • 根據JointGrid 文檔中的示例,參數為fc。要使用fc,ec也應該使用。

    • 指定fc='none',而不指定ec,將導致空白標記。

    • fc:?facecolor,?ec:?edgecolor

  • 'None'兩者'none'都有效,但不是None

  • 測試于python 3.11.3,?matplotlib 3.7.1,seaborn 0.12.2

import seaborn as sns


# load data

df = sns.load_dataset("penguins", cache=False)


# plot

g = sns.jointplot(data=df, x="bill_length_mm", y="bill_depth_mm",

? ? ? ? ? ? ? ? ? ec="purple", fc="none", color='purple')

https://img4.sycdn.imooc.com/64d1e7430001183f04140416.jpg

  • hue用于 時seaborn v0.12,fc=似乎不起作用。

import seaborn as sns

import matplotlib as mpl


# load data

df = sns.load_dataset("penguins")


# create a palette dict with a known color_palette

species = df.species.unique()

palette = dict(zip(species, sns.color_palette(palette='crest', n_colors=len(species))))


# ec requires a single value or a list of values

ec = df.species.map(palette)


# plot

g = sns.jointplot(data=df, x="bill_length_mm", y="bill_depth_mm", ec=ec, hue='species', palette=palette, linewidth=1)


# get the join axes; not the margins

ax_joint = g.ax_joint


# iterate throught axes children

for c in ax_joint.get_children():

? ? # set the facecolor to none

? ? if type(c) == mpl.collections.PathCollection:? ??

? ? ? ? c.set_facecolor('none')


# also change the legend

kws = {"s": 70, "facecolor": "none", "linewidth": 1.5}

handles, labels = zip(*[

? ? (plt.scatter([], [], ec=color, **kws), key) for key, color in palette.items()

])

ax_joint.legend(handles, labels, title="cat")

https://img1.sycdn.imooc.com/64d1e75600019fde05750579.jpg

  • 使用marker="$\circ$"產生這個情節。

g?=?sns.jointplot(data=df,?x="bill_length_mm",?y="bill_depth_mm",??hue='species',?palette=palette,?marker="$\circ$",?s=100)

  • 這似乎seaborn v0.12不起作用

  • 如果使用該參數,則需要不止一種顏色。但是,對于超過幾種顏色的任何顏色,?通過將傳遞到的列中的唯一值壓縮到已知的調色板,可以更輕松地創建。echue=palettehue

    • 如果使用連續調色板,指定n_colors將生成palette具有更好的顏色區分的顏色。

    • 'tab10'是默認值

    • palette = dict(zip(df.species.unique(), sns.color_palette('tab10')))

    • species = df.species.unique()palette = dict(zip(species, sns.color_palette('crest', n_colors=len(species))))

#?plot
g?=?sns.jointplot(data=df,?x="bill_length_mm",?y="bill_depth_mm",
??????????????????hue='species',?ec=ec,?fc="none",?palette=palette)

https://img4.sycdn.imooc.com/64d1e7700001437204150418.jpg

調色板

'Accent', 'Accent_r', 'Blues', 'Blues_r', 'BrBG', 'BrBG_r', 'BuGn', 'BuGn_r', 'BuPu'

'BuPu_r', 'CMRmap', 'CMRmap_r', 'Dark2', 'Dark2_r', 'GnBu', 'GnBu_r', 'Greens', 'Greens_r'

'Greys', 'Greys_r', 'OrRd', 'OrRd_r', 'Oranges', 'Oranges_r', 'PRGn', 'PRGn_r', 'Paired'

'Paired_r', 'Pastel1', 'Pastel1_r', 'Pastel2', 'Pastel2_r', 'PiYG', 'PiYG_r', 'PuBu'

'PuBuGn', 'PuBuGn_r', 'PuBu_r', 'PuOr', 'PuOr_r', 'PuRd', 'PuRd_r', 'Purples', 'Purples_r'

'RdBu', 'RdBu_r', 'RdGy', 'RdGy_r', 'RdPu', 'RdPu_r', 'RdYlBu', 'RdYlBu_r', 'RdYlGn'

'RdYlGn_r', 'Reds', 'Reds_r', 'Set1', 'Set1_r', 'Set2', 'Set2_r', 'Set3', 'Set3_r'

'Spectral', 'Spectral_r', 'Wistia', 'Wistia_r', 'YlGn', 'YlGnBu', 'YlGnBu_r', 'YlGn_r'

'YlOrBr', 'YlOrBr_r', 'YlOrRd', 'YlOrRd_r', 'afmhot', 'afmhot_r', 'autumn', 'autumn_r'

'binary', 'binary_r', 'bone', 'bone_r', 'brg', 'brg_r', 'bwr', 'bwr_r', 'cividis'

'cividis_r', 'cool', 'cool_r', 'coolwarm', 'coolwarm_r', 'copper', 'copper_r', 'crest'

'crest_r', 'cubehelix', 'cubehelix_r', 'flag', 'flag_r', 'flare', 'flare_r', 'gist_earth'

'gist_earth_r', 'gist_gray', 'gist_gray_r', 'gist_heat', 'gist_heat_r', 'gist_ncar'

'gist_ncar_r', 'gist_rainbow', 'gist_rainbow_r', 'gist_stern', 'gist_stern_r', 'gist_yarg'

'gist_yarg_r', 'gnuplot', 'gnuplot2', 'gnuplot2_r', 'gnuplot_r', 'gray', 'gray_r'

'hot', 'hot_r', 'hsv', 'hsv_r', 'icefire', 'icefire_r', 'inferno', 'inferno_r', 'jet'

'jet_r', 'magma', 'magma_r', 'mako', 'mako_r', 'nipy_spectral', 'nipy_spectral_r'

'ocean', 'ocean_r', 'pink', 'pink_r', 'plasma', 'plasma_r', 'prism', 'prism_r', 'rainbow'

'rainbow_r', 'rocket', 'rocket_r', 'seismic', 'seismic_r', 'spring', 'spring_r', 'summer'

'summer_r', 'tab10', 'tab10_r', 'tab20', 'tab20_r', 'tab20b', 'tab20b_r', 'tab20c'

'tab20c_r', 'terrain', 'terrain_r', 'turbo', 'turbo_r', 'twilight', 'twilight_r', 'twilight_shifted'

'twilight_shifted_r', 'viridis', 'viridis_r', 'vlag', 'vlag_r', 'winter', 'winter_r'



查看完整回答
反對 回復 2023-08-08
?
繁星coding

TA貢獻1797條經驗 獲得超4個贊

如果您希望能夠利用該hue參數,首先,定義您的顏色圖。其次,設置適當的色調并在調色板和邊緣顏色參數中指定顏色圖。


penguins = sns.load_dataset("penguins")


colormap = {"Adelie": "purple", "Chinstrap": "orange", "Gentoo": "green"}


sns.jointplot(

? ? data=penguins,

? ? x="bill_length_mm",

? ? y="bill_depth_mm",

? ? hue="species",

? ? palette=colormap,

? ? ec=penguins["species"].map(colormap),

? ? fc="none",

)

https://img3.sycdn.imooc.com/64d1e78a0001c2d904280424.jpg

查看完整回答
反對 回復 2023-08-08
  • 2 回答
  • 0 關注
  • 168 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號