相关疑难解决方法(0)

用于matplotlib plot_surface命令的Colorbar

我已经在Paul的帮助下修改了我的应用程序的mplot3d 示例代码.代码如下:

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

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

u = np.linspace(0, 2 * np.pi, 100)
v = np.linspace(0, np.pi, 100)

x = 10 * np.outer(np.cos(u), np.sin(v))
y = 10 * np.outer(np.sin(u), np.sin(v))
z = 10 * np.outer(np.ones(np.size(u)), np.cos(v))
z1 = z * np.cos(0.5*x)

N = z1 / z1.max()  # normalize 0..1
surf = ax.plot_surface(x, y, z, rstride=1, cstride=1, facecolors=cm.jet(N), linewidth=0, antialiased=False, shade=False)

fig.colorbar(surf, shrink=0.5, aspect=5)
plt.show() …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

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

Geopandas上的Colorbar

我想在GeoPandas上创建一个Matplotlib颜色条.

import geopandas as gp
import pandas as pd
import matplotlib.pyplot as plt

#Import csv data
df = df.from_csv('data.csv')

#Convert Pandas DataFrame to GeoPandas DataFrame
g_df = g.GeoDataFrame(df)

#Plot
plt.figure(figsize=(15,15)) 
g_plot = g_df.plot(column='column_name',colormap='hot',alpha=0.08)
plt.colorbar(g_plot)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

AttributeError                            Traceback (most recent call last)
<ipython-input-55-5f33ecf73ac9> in <module>()
      2 plt.figure(figsize=(15,15))
      3 g_plot = g_df.plot(column = 'column_name', colormap='hot', alpha=0.08)
----> 4 plt.colorbar(g_plot)

...

AttributeError: 'AxesSubplot' object has no attribute 'autoscale_None'
Run Code Online (Sandbox Code Playgroud)

我不知道如何让colorbar工作.

python matplotlib pandas geopandas

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

Matplotlib,绘图上的对数色标,但颜色条图例上的线性色标

我想以对数比例绘制,我已经使用以下方法完成了:

plt.contourf(cube[0,:,:].data, levels=np.arange(0,6000,10), norm=mplc.LogNorm())
Run Code Online (Sandbox Code Playgroud)

但是我希望颜色条仍然是线性比例...这可能吗?如果可以的话我该怎么做?norm 关键字在命令中似乎无效plt.colorbar()

python matplotlib legend contour colorbar

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

使用Matplotlib在线图上绘制颜色条

我正在尝试在图形中添加颜色条,但我不明白它是如何工作的.问题是我通过以下方式制作自己的颜色代码:

x = np.arange(11)

ys = [i+x+(i*x)**2 for i in range(11)]

colors = cm.rainbow(np.linspace(0, 1, len(ys)))
Run Code Online (Sandbox Code Playgroud)

colors[i]会给我一个新的颜色.然后我使用(自制)函数来选择相关数据并相应地绘制它们.这看起来像这样:

function(x,y,concentration,temperature,1,37,colors[0])
function(x,y,concentration,temperature,2,37,colors[1])
# etc
Run Code Online (Sandbox Code Playgroud)

现在我想在颜色条中添加颜色,我可以更改标签.我该怎么做呢?

我已经看过几个例子,你将所有数据绘制成一个数组,带有自动颜色条,但是在这里我逐个绘制数据(通过使用函数来选择相关数据).

编辑:

函数(x,y,浓度,温度,1,37,颜色[0])看起来像这样(简化):

def function(x,y,c,T,condition1,condition2,colors):

  import matplotlib.pyplot as plt

  i=0

  for element in c:
   if element == condition1:
      if T[i]==condition2:
          plt.plot(x,y,color=colors,linewidth=2)

  i=i+1

return
Run Code Online (Sandbox Code Playgroud)

python matplotlib colorbar

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

显示matplotlib颜色条而不是多个绘图的图例,颜色逐渐变化

我试图制作一个简单的图表,显示许多属于具有特定顺序的大型数据集的曲线,比如说情节1..n.随着n的增加,曲线的形状逐渐变化.读者可以准确地看到哪个图属于n的哪个值并不重要,但是他们应该能够猜测n的数量级.

因此,我做这样的事情:

nValues = range(0,30)
xValues = np.linspace(0,10)
dataset = [(xValues-5-0.5*n)**2 for n in nValues]
colors = {n: colorsys.hsv_to_rgb(hue,0.9,0.7) for n,hue in zip(nValues,np.linspace(0,0.7,len(nValues)))}
for n in nValues:
    plt.plot(dataset[n],color=colors[n])
Run Code Online (Sandbox Code Playgroud)

(为了清楚起见,这仅仅是为了示例,我的数据实际上存储在一个漂亮的pandas数据帧中.)

在此输入图像描述

而不是图例,我想在图表旁边添加一个颜色条,可能有几个标记和标签(至少是最小值和最大值),以指示哪个颜色属于n的哪个值,但我不是知道如何做到这一点.如果我真的从ColorMap获得我的绘图颜色,我认为事情可能会更容易,但我也不知道如何做到这一点,我也不知道如何从那里开始.

欢迎任何指示!

python data-visualization matplotlib

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

matplotlib 从轴获取可映射的颜色条

我想添加一个颜色条,而没有轴在绘制事物时返回的内容。有时我将事物绘制到函数内的轴上,该轴不返回任何内容。有没有办法从预先完成绘图的轴获取颜色条的可映射性?我相信有足够的关于绑定到轴本身的颜色图和颜色范围的信息。

我希望 tp 做这样的事情:

def plot_something(ax):
    ax.plot( np.random.random(10), np.random.random(10), c= np.random.random(10))

fig, axs = plt.subplots(2)
plot_something(axs[0])
plot_something(axs[1])

mappable = axs[0].get_mappable() # a hypothetical method I want to have.

fig.colorbar(mappable)
plt.show()
Run Code Online (Sandbox Code Playgroud)

编辑

对可能重复的答案可以部分解决我在代码片段中给出的问题。然而,这个问题更多的是关于从轴检索一般可映射对象,根据 Diziet Asahi 的说法,这似乎是不可能的。

python matplotlib

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