簡體   English   中英

如何使用“ seaborn”調色板將“ colorbar”添加到“ networkx”? (Python 3)

[英]How to add `colorbar` to `networkx` using a `seaborn` color palette? (Python 3)

我想要一個添加colorbarnetworkx繪制matplotlib ax從范圍1 (最亮)和3 (即最黑暗的)檢查出的線W / cmap以下。 我正在嘗試結合許多PyData功能。

如何使用seaborn調色板在networkx圖上添加顏色欄類型功能?

在此處輸入圖片說明

# Set up Graph
DF_adj = pd.DataFrame(np.array(
     [[1, 0, 1, 1],
     [0, 1, 1, 0],
     [1, 1, 1, 1],
     [1, 0, 1, 1] ]), columns=['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)'], index=['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)'])

G = nx.Graph(DF_adj.as_matrix())
G = nx.relabel_nodes(G, dict(zip(range(4), ['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)'])))

# Color mapping
color_palette = sns.cubehelix_palette(3)
cmap = {k:color_palette[v-1] for k,v in zip(['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)'],[2, 1, 3, 2])}

# Draw
nx.draw(G, node_color=[cmap[node] for node in G.nodes()], with_labels=True)

在這種情況下,它們都使用matplotlib調色板: http : ListedColormap我什至嘗試將它們轉換為ListedColormap對象,但沒有用。

這對我的情況都不起作用b / c matplotlib colormap: 帶有colorbar的Seaborn regplot?

http://matplotlib.org/examples/pylab_examples/colorbar_tick_labelling_demo.html相同

這是我得到的最接近的東西,但沒有用,我得到了自動縮放Nonetype: 如何在seaplotlib中使用seaborns color_palette作為顏色圖?

我認為最好的做法是按照此答案偽造它,因為您沒有可以使用的“ ScalarMappable”。

對於離散色彩圖

from matplotlib.colors import ListedColormap
sm = plt.cm.ScalarMappable(cmap=ListedColormap(color_palette),
                           norm=plt.Normalize(vmin=0, vmax=3))
sm._A = []
plt.colorbar(sm)

如果您想要線性(連續)顏色圖,並且僅顯示整數刻度

sm = plt.cm.ScalarMappable(cmap=sns.cubehelix_palette(3, as_cmap=True),
                           norm=plt.Normalize(vmin=0, vmax=3))
sm._A = []
plt.colorbar(sm, ticks=range(4))

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM