我想请求帮助,以便在 python 中使用渐变调色板AS BACKGROUND 制作 dotplot 。我设法在R中做了这个情节(我有一些专业知识),但出于学习目的我想用Python实现。
这是我在R中制作的情节,我想用Python重现:
这是用于在R
中生成图的表Player,Rank
Messi,3
Neymar,3
Ronaldo,2
Iniesta,2
Rooney,2
Pogba,2
Dybala,1
Bale,0
这是我使用Matplotlib,seaborn和pandas在Python中的尝试:
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])
这段代码给了我以下情节:
这里的问题是:
如何将类似“RdYlGn_r”调色板的渐变绘制到图中?
答案 0 :(得分:2)
您可以绘制一个简单的背景图像。
开始使用:
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])