小编Pat*_*ick的帖子

最可靠的方法来自动选择matplotlib中的线条样式与seaborn相结合

我正在寻找一种可靠的方法来自动为我的情节选择线条样式.现在我有8行用于绘图,我希望自动选择可以区分的线型是可行的.

截至目前,我基本上有两种方式.设置标记或定义样式.两个人似乎都对seaborn有些问题.首先是使用循环仪:

plt.rc('axes', prop_cycle=cycler('linestyle', ['-', '--', ':', '-.']))
Run Code Online (Sandbox Code Playgroud)

如果我使用它,它要么覆盖seaborn设置,要么被seaborn覆盖,这取决于我先设置的那个.我在其中一个示例中找到的另一种方法是设置行的标记:

def makeStyles():
    markers = []
    for m in Line2D.markers:
        try:
            if len(m) == 1 and m != ' ':
                markers.append(m)
        except TypeError:
            pass

    styles = markers + [
        r'$\lambda$',
        r'$\bowtie$',
        r'$\circlearrowleft$',
        r'$\clubsuit$',
        r'$\checkmark$']
    return styles
Run Code Online (Sandbox Code Playgroud)

这里的问题是,相当一些标记看起来是相同的,这只是一条没有标记的线.

有没有其他方法可靠,适用于seaborn?

python matplotlib seaborn

6
推荐指数
1
解决办法
194
查看次数

将seaborn heatmap导出到完整的pgf

我正在尝试用seaborn绘制热图并将其导出到pgf,以便在Latex中轻松导入.这或多或少都有效,唯一困扰我的是颜色条被导出为额外的png.

因此,如果我将导出运行到pgf,我会得到以下结果:

  • test.pgf
  • 测试img0.png

这绝对是不合需要的,因为png不能很好地缩放.一些MWE:

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns

df = pd.DataFrame.from_csv("test.csv", sep=',')

sns.set('paper', 'white', rc={'font.size': 10, 'axes.labelsize': 10, 'legend.fontsize': 8, 'axes.titlesize': 10,
                              'xtick.labelsize': 8,
                              'ytick.labelsize': 8, "pgf.rcfonts": False})
plt.rc('font', **{'family': 'serif', 'serif': ['Times']})
plt.rc('text', usetex=True)
fig = plt.figure()
ax = sns.heatmap(df, linewidths=.5)
fig.savefig('test.pdf')
fig.savefig('test.pgf')
Run Code Online (Sandbox Code Playgroud)

和test.csv的内容:

0,1,2,3,4
1,1,1,1,1
2,2,2,2,2
3,3,3,3,3
Run Code Online (Sandbox Code Playgroud)

有没有人有解决方案将颜色条包含在pgf输出中?

python matplotlib heatmap pgf seaborn

5
推荐指数
1
解决办法
2240
查看次数

标签 统计

matplotlib ×2

python ×2

seaborn ×2

heatmap ×1

pgf ×1