python - Python 中带有渐变背景的点图?

标签 python matplotlib seaborn

我想寻求帮助,以便在python中使用渐变调色板作为背景制作点图。我设法在 R 中绘制了这个图(我有一些专业知识),但出于学习目的我想用 Python 绘制它

这是我在 R 中绘制的图,我想在 Python 中重现它:

/image/fqbJ1.jpg

这是用于在 R 中生成绘图的表格

Player,Rank
Messi,3
Neymar,3
Ronaldo,2
Iniesta,2
Rooney,2
Pogba,2
Dybala,1
Bale,0

这是我在 Python 中使用 Matplotlib、seaborn 和 pandas 的尝试:

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])

这个 block 代码给了我以下结果:

/image/FJ0Ur.jpg

这里的问题是:

如何将像“RdYlGn_r”调色板这样的渐变绘制到图中?

最佳答案

您可以绘制简单的背景图像。

开始:

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])

enter image description here

关于python - Python 中带有渐变背景的点图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35311515/

相关文章:

python - 如何在if语句中退出python脚本

python - "R6034 An application has made an attempt to load the C runtime library incorrectly"安装pygtk后

python - 标记联合散点子图中的单点

python - Seaborn Countplot并未显示所有类别

python - 条形图中的索引和排序问题

选择满足特定谓词的随机值的Pythonic方法

python - 为什么 python 将 0.2 + 0.2 显示为 0.4?

python - 在 pandas Intervalindex 中查找匹配间隔

python - 检查 matplotlib 中的坐标轴刻度

python - Matplotlib 2.2.2 无法 xkcdify 绘图