相关疑难解决方法(0)

根据节点值为networkx中的节点绘制不同的颜色

我有一个大的节点和有向边的图.此外,我还为每个节点分配了一个额外的值列表.

我现在想根据节点值更改每个节点的颜色.例如,绘制具有非常高的红色值的节点和具有低值蓝色的节点(类似于热图).这在某种程度上很容易实现吗?如果没有使用networkx,我也可以使用Python中的其他库.

python visualization graph networkx

30
推荐指数
2
解决办法
3万
查看次数

如何将'LinearSegmentedColormap'更改为不同的颜色分布?

我正在尝试制作一个"有利于"较低值的颜色贴图,即从较暗的颜色中获取浅色需要更长的时间.目前我正在使用它作为colormap:

cmap = clr.LinearSegmentedColormap.from_list('custom blue', ['#ffff00','#002266'], N=256)
Run Code Online (Sandbox Code Playgroud)

我正在绘制一个圆柱体以查看效果(请参阅帖子末尾的圆柱代码),这是运行代码时会发生的情况:

在此输入图像描述

如你所见,这是非常"线性"的.颜色开始沿着圆柱体的一半变化.有没有办法增加颜色开始快速变化的阈值?即我只想要非常高的数字才能获得最亮的黄色.谢谢.

from matplotlib import cm
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from scipy.linalg import norm
from mpl_toolkits.mplot3d.art3d import Poly3DCollection
import numpy as np
import math
import mpl_toolkits.mplot3d.art3d as art3d
import matplotlib.colors as clr


fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')



origin = [0,0,0]
#radius = R
p0 = np.array(origin)
p1 = np.array([8, 8, 8])
origin = np.array(origin)
R = 1

#vector in direction of axis
v = p1 …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

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

对称颜色图 matplotlib

我有一系列在 -180 到 180 之间变化的值,我是一个关于零对称的颜色图,即 -180 的颜色对于 180 值是相同的,依此类推。这是我第一次使用 matplotlib 我只是没有找到使它围绕零对称的方法,负片总是与正片具有不同的颜色。非常感谢。

python matplotlib

7
推荐指数
2
解决办法
2050
查看次数

什么是matplotlib的好收敛colourmap

在制作散点图时,有许多选项可以分散颜色图,强调极值处的数据,但没有聚合颜色图的选项,强调接近范围中间的数据.任何人都可以建议一个,或告诉我为什么使用一个是个坏主意?

我的用例是散点图,其中每个点表示对不同数据集的拟合,而颜色表示拟合的降低的平方.我想强调接近一个的价值观,并且不再强调不合适.

编辑

这是我的用例更详细.我正在测量一种算法的性能,该算法旨在区分时间序列数据中的实际信号和系统信号(在这种情况下,行星在开普勒数据中转换而不是在数据中的毛刺中).对于每个模拟,我有一个输入值,一个描述算法决策的数字,以及一个测量拟合优度的降低的平方.我想使用颜色方案来突出显示最接近一个的卡方减少的点,而不是适合度差的情况.

有很多方法可以做到这一点(例如,有点大小),但如果可以,我想用颜色做.

python colors matplotlib

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

Python:制作从红色到蓝色的彩条

我有一系列的线(目前总共60个),我想绘制到相同的数字,以显示某个过程的时间演变.绘制当前行,使最早的时间步长绘制为100%红色,最新时间步长绘制为100%蓝色,中间的时间步长是红色和蓝色的混合,基于它们的时间(红色的量随着时间的增加而线性减少,而蓝色的量随着时间的增加而线性增加;简单的颜色梯度).我想制作一种(最好是垂直的)某种颜色条,以连续的方式显示它.我的意思是我想要一个底部为红色,顶部为蓝色,条形中间有红色和蓝色混合的颜色条,以与线条相同的方式从红色平滑过渡到蓝色我情节.我还想在这个颜色条上放置轴,以便我可以显示哪个颜色对应于哪个时间步.

我已经阅读了文档,matplotlib.pyplot.colorbar()但是如果不使用matplotlib之前定义的颜色映射,我无法弄清楚如何做我想做的事情.我的猜测是,我需要定义我自己的从红色到蓝色matplotlib.pyplot.colorbar()的色彩映射,然后将它提供给我想要的颜色条是相对简单的.

这是我用来绘制线条的代码示例:

import numpy as np
from matplotlib import pyplot as pp

x= ##x-axis values for plotting

##start_time is the time of the earliest timestep I want to plot, type int
##end_time is the time of the latest timestep I want to plot, type int

for j in range(start_time,end_time+1):
    ##Code to read data in from time step number j
    y = ##the data I want to plot
    red = 1. - (float(j)-float(start_time))/(float(end_time)-float(start_time))
    blue = (float(j)-float(start_time))/(float(end_time)-float(start_time)) …
Run Code Online (Sandbox Code Playgroud)

python colors matplotlib

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

Barplot根据色彩图进行着色?

首先,我对Matplotlib或Seaborn的颜色很新.我的目的是创建一个条形图,其条形图根据自定义调色板着色.这样的东西,但我的自定义调色板(见下面,红色,橙色,绿色和蓝色的调色板):

barplot

我已经使用该LinearSegmentedColormap方法创建了自定义顺序调色板,但我无法在简单中使用它plt.barplot().当然不难,但我看不出路.我使用下面的函数创建了调色板,从这个线程获得:使用matplotlib创建自己的颜色图并绘制颜色比例

def make_colormap(seq):
"""Return a LinearSegmentedColormap
seq: a sequence of floats and RGB-tuples. The floats should be increasing
and in the interval (0,1).
"""
seq = [(None,) * 3, 0.0] + list(seq) + [1.0, (None,) * 3]
cdict = {'red': [], 'green': [], 'blue': []}
for i, item in enumerate(seq):
    if isinstance(item, float):
        r1, g1, b1 = seq[i - 1]
        r2, g2, b2 = seq[i + 1]
        cdict['red'].append([item, r1, r2])
        cdict['green'].append([item, g1, g2])
        cdict['blue'].append([item, …
Run Code Online (Sandbox Code Playgroud)

python plot matplotlib seaborn

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

箭头的不同的颜色在颤抖剧情

我正在绘制箭头图,我的代码使用外部文件,如下所示:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
from pylab import rcParams

data=np.loadtxt(r'data.dat')

x = data[:,0] 
y = data[:,1] 
u = data[:,2] 
v = data[:,3] 


plt.quiver(x, y, u, v, angles='xy', scale_units='xy', scale=1, pivot='mid',color='g')
Run Code Online (Sandbox Code Playgroud)

数据文件基本上如下:

0 0 0 1
0 1 1 0
1 0 1 0
1 1 0 1
Run Code Online (Sandbox Code Playgroud)

这会产生一个看起来像的情节

在此输入图像描述

有没有办法用不同的箭头方向绘制不同的颜色?

Ps.:我的数据文件中有更多的箭头,这是一个不太合乎逻辑的句子,就像我使用的那样.

python matplotlib

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

在python中使用matplotlib制作自定义色彩映射表

我有一个用matplotlib显示的图像.

在此输入图像描述

该图像由以下代码生成:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm


labels = ['Name1', 'Name2', 'Name3', 'Name4', 'Name5', 'Name6']

data = np.array(
 [[ 0.000, 0.120, 0.043, 0.094, 0.037, 0.045],
  [ 0.120, 0.000, 0.108, 0.107, 0.105, 0.108],
  [ 0.043, 0.108, 0.000, 0.083, 0.043, 0.042],
  [ 0.094, 0.107, 0.083, 0.000, 0.083, 0.089],
  [ 0.037, 0.105, 0.043, 0.083, 0.000, 2.440],
  [ 0.045, 0.108, 0.042, 0.089, 2.440, 0.000]])


mask =  np.tri(data.shape[0], k=-1)
data = np.ma.array(data, mask=mask) # Mask out the lower …
Run Code Online (Sandbox Code Playgroud)

python matplotlib heatmap colorbar colormap

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

(python)绘制带有colormap的3d表面作为第四维,x,y,z的函数

我正在尝试绘制一个三维表面,其中三个维度中的每个维度在一个单独的数组中,每个坐标处的表面着色是x,y,z的函数.一种numpy.pcolormesh,但在4D,而不是3D.3D图由下式给出:

from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
fig = plt.figure()
ax = fig.gca(projection='3d')
x = np.logspace(-1.,np.log10(5),50)
y = np.linspace(6,9,50)
z = np.linspace(-1,1,50)
colors = LikeBeta(y,range(50),range(50))
ax.plot_trisurf(x,y,z,cmap=colors,linewidth=0.2)
Run Code Online (Sandbox Code Playgroud)

哪里

def LikeBeta(rho0,r0,beta):
    M0 = 10**rho0*r0_array[r0]**3
    I = cst*M0*sigma_los_beta[beta,:,r0]
    S = dv**2+I
    res = (np.log(S) + (v-u)**2/S).sum()
    return res/2.
Run Code Online (Sandbox Code Playgroud)

可能cmap=colors是错的,但问题出在其他地方.我收到以下错误:

----> 8 colors = LikeBeta(y,range(50),range(50))
----> 4     I = cst*M0*sigma_los_beta[beta,:,r0]
    ValueError: operands could not be broadcast together with shapes (50,) (50,353)
Run Code Online (Sandbox Code Playgroud)

确实sigma_los_beta是一个我单独评估并具有形状的阵列,(50,353,50)而那些353是我必须拥有的数据.

如何将此函数转换为与其他条目兼容的表单plot_trisurf

抱歉,我无法提供最小的工作代码,因为dv,v和u是数据.非常感谢您的帮助.干杯

python 3d matplotlib

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

如何使用matplotlib生成新的彩虹色图?

我需要使用彩虹色图来绘制填充有0.0到1.0的地球物理值的图像.

我尝试了matplotlib现有的彩虹色图,但我并不完全满意:

from matplotlib import pyplot as plt
import numpy as np

plt.pcolor(np.random.rand(10,10),cmap='rainbow')
plt.colorbar()
plt.show()
Run Code Online (Sandbox Code Playgroud)

如何创建一个范围从黑色到0.0的色彩图,然后逐渐显示以下颜色:紫色,蓝色,青色,绿色,黄色,最后红色为1.0?

python colors matplotlib

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

标签 统计

python ×10

matplotlib ×9

colors ×3

3d ×1

colorbar ×1

colormap ×1

graph ×1

heatmap ×1

networkx ×1

plot ×1

seaborn ×1

visualization ×1