首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中有梯度背景的DotPlot?

在Python中有梯度背景的DotPlot?
EN

Stack Overflow用户
提问于 2016-02-10 09:41:58
回答 1查看 2.6K关注 0票数 1

我想寻求帮助,以便在python中创建一个以梯度调色板作为背景点阵。我成功地在R中完成了这个图(我有一些专业知识),但是为了学习,我想用制作它。

这是我在R中制作的情节,我想用Python复制它:

http://imgur.com/wUblcsc

这是用于生成R中的图的表。

代码语言:javascript
复制
Player,Rank
Messi,3
Neymar,3
Ronaldo,2
Iniesta,2
Rooney,2
Pogba,2
Dybala,1
Bale,0

这是我在Python中使用Matplotlib,海运和熊猫的主旋律:

代码语言:javascript
复制
import seaborn as sns
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import sys  
reload(sys)  
sys.setdefaultencoding('utf8')

fit = pd.read_csv('test.txt', sep=',')

sns.set(
        font_scale=1.6, 
        context="paper", 
        rc={'grid.color':'black', 'axes.edgecolor':'black'})

g = sns.PairGrid(fit,
                 y_vars=["Player"], x_vars=["Rank"],
                 size=3, aspect=0.9, 
                 palette=dict(Reactividad="black"))

# Draw a dot plot using the stripplot function
g.map(sns.stripplot, size=12, orient="h",
  edgecolor="black")

g.set(xlim = (-0.3,3.3), xticks=[0,1,2,3])

因此,这个块代码给了我以下的情节:

http://imgur.com/EYNCCjw

这里的问题是:

如何将像"RdYlGn_r“调色板这样的梯度绘制到绘图中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-10 10:34:29

你可以画一个简单的背景图像。

开始:

代码语言:javascript
复制
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

names = ['A', 'B', 'C', 'D', 'E', 'F']
values = [0, 1, 2, 3, 1, 2]
n = len(names)
gradient = np.linspace(0, 1, 100).reshape(1, -1)
plt.imshow(gradient , extent=[-0.25, 3.25, -1, n], aspect='auto', cmap='RdYlGn_r')
sns.stripplot(x=values, y=names, color='b', size=12, edgecolor='b')
plt.hlines(np.arange(0, n), -0.25, 3.25, linestyles='--', linewidth=1)
plt.grid(False)
plt.xlim(-0.25, 3.25)
plt.xticks([0, 1, 2, 3])

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35311515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档