我注意到matplotlib的色彩映射函数有一些意想不到的行为。考虑以下示例:
from matplotlib.cm import hot
c = hot(range(0, 512))
所有颜色c255到c511都是相同的,即白色。我原本希望色彩映射表函数对输入进行标准化,并相应地缩放。当然,考虑到正常显示的颜色深度,前256色之间的值没有任何意义,但在达到最大值后才封顶似乎是不合理的。
我的目标是绘制两个时间序列(几千个值)的对比图,并根据时间戳分配颜色。我现在看到的是前255个不同颜色的数据点,其余的是白色的。关于如何高效地完成这一点,有什么建议吗?
提前感谢!
import numpy as np
from pandas import *
import matplotlib as mpl
import matplotlib.pyplot as plt
import sys
Size = 100
Num = 10
x = np.random.normal(0,1,(Num,Size))
df = DataFrame()
for i in range(Num):
df[str(i)] = x[i]
如果我输入
df.plot(colormap="jet")
我得到了颜色映射和线条标记的图形。
如果我输入
df.plot(c
我正在尝试制作一个有两种颜色的3D图。一种颜色用于大于零的值,另一种颜色用于小于零的值。我只是不知道如何在代码中实现这一点。
下面是我当前的代码:
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
import matplotlib.pyplot as plt
import matplotlib.tri as mtri
import pandas as pd
import numpy as np
df = pd.DataFrame.from_csv('...temp\\3ddata.csv',
我需要访问预定义的颜色映射"jet“。我找到了一个访问地图"vidiris“的例子。 import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
from matplotlib.colors import ListedColormap, LinearSegmentedColormap
viridis = cm.get_cmap('viridis', 12)
print('viridis.colors', viridis.colors) 这给了我地图的前
一张图片胜过千言万语:https://www.harrisgeospatial.com/docs/html/images/colorbars.png 我想用matplotlib获得与右边的颜色条相同的颜色条。默认行为对“上”/“下”和相邻的单元格使用相同的颜色... 谢谢你的帮助! 下面是我的代码: import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors as colors
N = 100
X, Y = np.mgrid[-3:3:complex(0, N), -2:2:complex(0, N
我正在尝试检索matplotlib热图上每个单元的颜色,该热图由imshow()函数生成,例如由下面的magic_function执行: import matplotlib.pyplot as plt
import numpy as np
hm = plt.imshow(np.random.rand(10, 10))
color_matrix = hm.magic_function() #returns matrix containing the RGB/Hex values of each cell
我想比较同一imshow图上的两组不同的数据,以便更容易地看到差异。我的第一反应是让色彩映射表中的颜色变得透明(特别是较低的值),但我一直未能做到这一点:
from matplotlib.colors import colorConverter
import matplotlib.pyplot as plt
import numpy as np
# create dummy data
zvals = np.random.rand(100,100)*10-5
zvals2 = np.random.rand(100,100)*10-5
# generate the transparent c
我在python上用matplotlib绘制,使用'tab20‘颜色映射,代码如下:
colors=[str(float(year-1980)/(2017-1980)) for i in years];
fig,ax = plt.subplots()
ax.scatter(Topic[:,0],Topic[:,1],c=colors,cmap='tab20')
但是我得到的图完全是灰色的。可能的原因是什么?
我有一个关于matplotlib的颜色条的问题。
散点设置为x、y和大小。我的意图是绘制200个随机大小和随机颜色的点。颜色是用200*3矩阵给出的。图片是正确的,而颜色栏显示错误。
我意识到colorbar()输入类型有问题。但我不知道如何配置或修复它。有谁能帮帮我吗?谢谢。
import numpy as np
import matplotlib.pyplot as plt
x = np.random.rand(200)
y = np.random.rand(200)
size = np.random.rand(200) * 200
color = np.array(np.random
在Matplotlib中,我最喜欢做的事情之一是设置颜色周期以匹配某些颜色映射表,以便生成线条图,使线条上的颜色具有良好的渐变效果。就像这样:
以前,这是使用set_color_cycle的一行代码
ax.set_color_cycle([plt.cm.spectral(i) for i in np.linspace(0, 1, num_lines)])
但是,最近我看到了一个警告:
MatplotlibDeprecationWarning:
The set_color_cycle attribute was deprecated in version 1.5.
Use set_
我正在运行下面的代码来显示Z函数。输出应该是彩色的。但是,它是以灰度显示的。这是在Jupyter笔记本上。当我在其他地方跑步时,它会以彩色显示。
# Import numpy and matplotlib.pyplot
import numpy as np
import matplotlib.pyplot as plt
# Generate two 1-D arrays: u, v
u = np.linspace(-2, 2, 41)
v = np.linspace(-1,1,21)
# Generate 2-D arrays from u and v: X, Y
X,Y = np.mes
我用matplotlib/pyplot绘制了一个简单的线条图。在同一个图中,最多有20条线。Matplotlib自动选择线条颜色。我需要用更粗的红色来画第一条线。
所以我试着:
if (i==0): # first line
plt.plot(x, y, 'r', lw=2.5)
else: # other lines
plt.plot(x, y)
到目前为止非常简单。第一行是正确的。但另一条线也是红色的。如何避免这种情况?
在某种程度上,为圆指定颜色与在散点图中指定颜色的工作方式不同:
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(6,6)) # give plots a rectangular frame
N = 4
r = 0.1
pos = 2.*np.random.rand(N,2) -1
# give different points different color
col = 1./N*np.arange(0,N)
# Method 1
for i,j,k in zip(pos[:,0