小编Mic*_*rry的帖子

在seaborn heatmap上设置颜色条的最大值

我需要将seaborn heatmap的最大值设置cbar为2.我尝试过:

cbar_kws = { 'ticks' : [0, 2] }
sns.heatmap(tiles, robust=True, fmt="f", cmap= 'RdBu_r', cbar_kws = cbar_kws)
Run Code Online (Sandbox Code Playgroud)

但这不起作用,文档也不是很清楚.我该怎么做呢?

python matplotlib heatmap seaborn

19
推荐指数
1
解决办法
2万
查看次数

在 matplotlib 图形上保存交互式系列 (html)

我有一个交互式绘图的示例(来自 matplotlib),我可以从系列中选择要在绘图上显示的行。这工作完美,但现在我想将其导出为 html。我可以成功地做到这一点,mpld3.save_html()但失去了系列选择的交互性。这是代码

import numpy as np
import matplotlib.pyplot as plt, mpld3
from matplotlib.widgets import CheckButtons

t = np.arange(0.0, 2.0, 0.01)
s0 = np.sin(2*np.pi*t)
s1 = np.sin(4*np.pi*t)
s2 = np.sin(6*np.pi*t)

fig, ax = plt.subplots()
l0, = ax.plot(t, s0, visible=False, lw=2)
l1, = ax.plot(t, s1, lw=2)
l2, = ax.plot(t, s2, lw=2)
plt.subplots_adjust(left=0.2)

rax = plt.axes([0.05, 0.4, 0.1, 0.15])
check = CheckButtons(rax, ('2 Hz', '4 Hz', '6 Hz'), (False, True, True))

def func(label):
    if label == '2 Hz': l0.set_visible(not l0.get_visible()) …
Run Code Online (Sandbox Code Playgroud)

python matplotlib mpld3

7
推荐指数
1
解决办法
1万
查看次数

将交互式Jupyter Notebook导出到html

以下代码绘制了一个交互式图形,可以在其中切换开/关特定的行。当我在Ipython Notebook中工作时,这完美地工作

import pandas as pd
import numpy as np
from itertools import cycle
import matplotlib.pyplot as plt, mpld3
from matplotlib.widgets import CheckButtons
import matplotlib.patches
import seaborn as sns
%matplotlib nbagg
sns.set(style="whitegrid")
df = pd.DataFrame({'freq': {0: 0.01, 1: 0.02, 2: 0.029999999999999999, 3: 0.040000000000000001, 4: 0.050000000000000003, 5: 0.059999999999999998, 6: 0.070000000000000007, 7: 0.080000000000000002, 8: 0.089999999999999997, 9: 0.10000000000000001, 10: 0.01, 11: 0.02, 12: 0.029999999999999999, 13: 0.040000000000000001, 14: 0.050000000000000003, 15: 0.059999999999999998, 16: 0.070000000000000007, 17: 0.080000000000000002, 18: 0.089999999999999997, 19: 0.10000000000000001, 20: 0.01, 21: 0.02, 22: …
Run Code Online (Sandbox Code Playgroud)

html python matplotlib ipython jupyter-notebook

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

plt.tight_layout()与sns.clustermap

Seaborns clustermap不适用于plt.tight_layout().

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

np.random.seed(98)
df = pd.DataFrame(np.random.rand(10,10))
cm = sns.clustermap(df)

plt.tight_layout()
plt.show()
Run Code Online (Sandbox Code Playgroud)

出现以下错误ValueError: max() arg is an empty sequence.我也使用sns.heatmap()完全相同的数据集,这没有错误.有工作吗?注意:我使用的实际标签比本例中的标签要长很多,但代码太长而无法显示.谢谢你的帮助!

python matplotlib seaborn

3
推荐指数
1
解决办法
3646
查看次数

Matplotlib.在'for loops'中绘制到同一轴

我有一个相当简单的问题,但有些事情让我难以忍受2天.我需要绘制2个以上的文件.每个文件需要在总共25个图上绘制,但必须绘制在同一组轴上.(即如果我需要2个文件,每个图上需要25个图,每行2行).

我有这个sudo代码生成50个图(每行一行)......这是错误的

with open(bamlist, 'r') as bamlist:
    for bam in bamlist:     #Opens the 2 files
        'Generate data Here'
        dataframe = []
        for line in data:
            line = line.split("\t")
            dataframe.append(line[0:4:1])
        df = pd.DataFrame(dataframe, columns=['Chromosome', 'Position', 'N', 'BaseCount'])

        grouped_df = df.groupby('Chromosome')     #groups dataframe into the required 25plots
        for df in grouped_df:
            density_data = 'Get density data from df'
            f, ax = plt.subplots()          
            sns.kdeplot(density_data, ax=ax, linewidth=1)
            pp.savefig()
pp.close()
Run Code Online (Sandbox Code Playgroud)

有没有办法在第二次输入for循环时恢复到初始轴的设置,这样我每个绘图就会得到2行25个点(而不是50个)?

python matplotlib

2
推荐指数
1
解决办法
2237
查看次数

从pandas在seaborn clustermap中设置col_colors

我有一个从pandas数据帧生成的clustermap.其中两列用于生成簇图,我需要使用第三列使用sns.palplot(sns.light_palette('red'))调色板生成col_colors栏(值将为0 - 1,浅 - 深色).

伪代码看起来像这样:

df=pd.DataFrame(input, columns = ['Source', 'amplicon', 'coverage', 'GC'])
tiles = df.pivot("Source", "amplicon", "coverage")
col_colors = [values from df['GC']]
sns.clustermap(tiles, vmin=0, vmax=2, col_colors=col_colors)
Run Code Online (Sandbox Code Playgroud)

我正在努力寻找有关如何设置col_colors的详细信息,以便将正确的值链接到相应的tile.一些方向将不胜感激.

python matplotlib pandas seaborn

2
推荐指数
1
解决办法
3596
查看次数