相关疑难解决方法(0)

如何为不同级别指定不同的颜色范围?

我正在制作一个格子levelplot,x并且y因子范围为[0,1]:

      x     y     level                                                                                                                                                                                                                       
1 m3134 m3134 1.0000000                                                                                                                                                                                                                       
2 m3134 m416B 0.4189057                                                                                                                                                                                                                       
3 m416B m3134 0.2696508                                                                                                                                                                                                                       
4 m3134  mA20 0.3322170                                                                                                                                                                                                                       
5  mA20 m3134 0.2454191                                                                                                                                                                                                                       
6 m3134    mB 0.3176792
...
Run Code Online (Sandbox Code Playgroud)

这是我用来根据这些数据制作图形的R脚本:

#!/foo/bar/bin/Rscript --vanilla                                                                                                                                                                        
args <- commandArgs(TRUE)                                                                                                                                                                                                                     
mtxFn <- args[1]                                                                                                                                                                                                                              
pdfFn <- args[2]                                                                                                                                                                                                                              

mtx <- read.table(mtxFn, col.names=c("x", "y", "level"))                                                                                                                                                                                      
mtx$level[(mtx$level == 1)] <- NA                                                                                                                                                                                                             

library(lattice)                                                                                                                                                                                                                              
trellis.device(dev=pdf, file=pdfFn)                                                                                                                                                                                                           
colors <- colorRampPalette(c('red', 'white'))(256)                                                                                                                                                                                            
fig <- levelplot(level~x*y,                                                                                                                                                                                                                   
                 data=mtx,                                                                                                                                                                                                                    
                 col.regions=colors,                                                                                                                                                                                                          
                 xlab="",                                                                                                                                                                                                                     
                 ylab="",                                                                                                                                                                                                                     
                 aspect="iso",                                                                                                                                                                                                                
                 scales=list(                                                                                                                                                                                                                 
                   x=list(rot=90)                                                                                                                                                                                                             
                   ),                                                                                                                                                                                                                         
                 panel=function(...) {                                                                                                                                                                                                        
                   arg <- …
Run Code Online (Sandbox Code Playgroud)

r lattice na levelplot

10
推荐指数
1
解决办法
6581
查看次数

绘制分类热图保持(x,y)值颜色

我一直在使用python,pandas和seaborn来获得具有不同colormaps/columns的热图.感谢这个问题,我做了以下事情:

示例Dataframe(sample.csv):

X,a,b,c
A,0.5,0.7,0.4
B,0.9,0.3,0.8
C,0.3,0.4,0.7
Run Code Online (Sandbox Code Playgroud)

使用Seaborn绘制热图

import pandas as pd
import matplotlib as mpl
# Set new Backend to Use Seaborn
# mpl.use('Agg')
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import colorsys

# Working example data:
df = pd.DataFrame([[0.5,0.7,0.4],[.9,.3,.8],[.3,.4,.7]],['A','B','C'])    

# Get Color List
N = 3
COL = [colorsys.hsv_to_rgb(x*1.0/N, 0.7, 0.5) for x in range(N)]

with sns.axes_style('white'):

    for i, name in enumerate(df.columns):

        # Create cmap
        colors = COL[i]
        cmap = sns.light_palette(colors, …
Run Code Online (Sandbox Code Playgroud)

python matplotlib heatmap pandas seaborn

8
推荐指数
1
解决办法
1594
查看次数

使用两个不同颜色的数据集创建 matplotlib 热图

我目前有两个大数据集,我想比较它们。我分别拥有它们,一个是红色,一个是蓝色,但是我想并排显示红色和蓝色。我该怎么办?

我目前的代码是:

column_labels = list(heatmap_ylabels)
row_labels = list(heatmap_xlabels)
fig, ax = plt.subplots()
heatmap = ax.pcolor(data, cmap=plt.cm.Reds)

ax.set_xticks(np.arange(9+0.5))
ax.set_yticks(np.arange(140+0.5))

ax.invert_yaxis()
ax.xaxis.tick_top()
ax.set_xticklabels(row_labels, minor=False)
ax.set_yticklabels(column_labels, minor=False)
#plt.show()
plt.savefig('n1_heatmap')
plt.clf()

column_labels = list(heatmap_ylabels)
row_labels = list(heatmap_xlabels)
fig, ax = plt.subplots()
heatmap = ax.pcolor(data1, cmap=plt.cm.Blues)

ax.set_xticks(np.arange(9+0.5))
ax.set_yticks(np.arange(140+0.5))

ax.invert_yaxis()
ax.xaxis.tick_top()
ax.set_xticklabels(row_labels, minor=False)
ax.set_yticklabels(column_labels, minor=False)
plt.savefig('n2_heatmap')
plt.clf()
Run Code Online (Sandbox Code Playgroud)

两者datadata1用信息140名不同的列表,从280个不同的文件提取的形成,是有办法,我仍然可以为了使用这两个列表创建一个热图将在同一图中显示这些数据?

例如,我的热图将是 /red/blue/red/blue 等

这是我的热图示例:

在此处输入图片说明

编辑:

虽然没有准确显示我想要的内容,但我已经制作了前两个热图之间值差异的热图。

例如: y2 = np.subtract(y, y1)

data2.append(y2)
column_labels = list(heatmap_ylabels)
row_labels = list(heatmap_xlabels)
fig, ax = plt.subplots()
heatmap = …
Run Code Online (Sandbox Code Playgroud)

python matplotlib heatmap

4
推荐指数
1
解决办法
1703
查看次数

按列有条件地为熊猫数据框着色

我现在正在使用 jupyter 笔记本,我正在寻找一种方法,根据其在列(或行)中的相对值,有条件地为熊猫数据框中的每个单元格着色。

最终输出应该是一个熊猫数据框。
从概念上讲,这就像创建一个热图,其中为每列独立定义阴影,并基于列本身的最大值和最小值。

我已经看过thisthis,但在两者中他们都创建了实际的绘图作为输出,而不是为数据帧单元格着色。

python pandas jupyter jupyter-notebook

0
推荐指数
1
解决办法
206
查看次数