[英]Recurring Custom Color Palette for Seaborn/Python/Matplotlib
[英]How to add `colorbar` to `networkx` using a `seaborn` color palette? (Python 3)
我想要一個添加colorbar
我networkx
繪制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.