【问题标题】:pyplot equivalent for pl.cm.Spectral in matplotlibpyplot 等效于 matplotlib 中的 pl.cm.Spectral
【发布时间】:2014-02-23 22:17:27
【问题描述】:

我一直在使用 pylab 的代码,效果很好:

import pylab as pl
colors = pl.cm.Spectral(np.linspace(0, 1, 10))

但是,我想离开 pylab,因为在文档中它说“pyplot 界面通常是非交互式绘图的首选”。所以我尝试使用matplotlib.cm,但找不到等效项。谁能帮我解决这个问题?

谢谢!

【问题讨论】:

    标签: python matplotlib scipy


    【解决方案1】:
    import matplotlib.pyplot as plt
    
    colors = plt.get_cmap('Spectral')(np.linspace(0, 1, 10))
    

    是目前唯一可行的解​​决方案。

    matplotlib 删除选项使用:

    colors = plt.cm.Spectral(np.linspace(0, 1, 10))
    

    在最新版本中。

    【讨论】:

      【解决方案2】:

      在脚本中使用 matplotlib 的最常见方法是

      import matplotlib.pyplot as plt
      

      您可以从那里访问Spectral 颜色图,使用 plt.cm.Spectral 或通过便利功能plt.get_cmap。例如,

      colors = plt.cm.Spectral(np.linspace(0, 1, 10))
      

      colors = plt.get_cmap('Spectral')(np.linspace(0, 1, 10))
      

      等价于

      colors = pl.cm.Spectral(np.linspace(0, 1, 10))
      

      【讨论】:

        【解决方案3】:

        应该只是cm.Spectral

        In [123]:
        
        import matplotlib.cm as cm
        cm.Spectral(np.linspace(0,1,10))
        Out[123]:
        array([[ 0.61960787,  0.00392157,  0.25882354,  1.        ],
               [ 0.84721262,  0.26120723,  0.30519032,  1.        ],
               [ 0.96378316,  0.47743176,  0.28581316,  1.        ],
               [ 0.99346405,  0.74771243,  0.43529413,  1.        ],
               [ 0.99777009,  0.93087275,  0.63306423,  1.        ],
               [ 0.94425221,  0.97770089,  0.66205308,  1.        ],
               [ 0.74771243,  0.89803922,  0.627451  ,  1.        ],
               [ 0.45305653,  0.78154557,  0.64628991,  1.        ],
               [ 0.21607075,  0.55563248,  0.73194927,  1.        ],
               [ 0.36862746,  0.30980393,  0.63529414,  1.        ]])
        In [119]:
        
        import pylab as pl
        pl.cm.Spectral(np.linspace(0, 1, 10))
        Out[119]:
        array([[ 0.61960787,  0.00392157,  0.25882354,  1.        ],
               [ 0.84721262,  0.26120723,  0.30519032,  1.        ],
               [ 0.96378316,  0.47743176,  0.28581316,  1.        ],
               [ 0.99346405,  0.74771243,  0.43529413,  1.        ],
               [ 0.99777009,  0.93087275,  0.63306423,  1.        ],
               [ 0.94425221,  0.97770089,  0.66205308,  1.        ],
               [ 0.74771243,  0.89803922,  0.627451  ,  1.        ],
               [ 0.45305653,  0.78154557,  0.64628991,  1.        ],
               [ 0.21607075,  0.55563248,  0.73194927,  1.        ],
               [ 0.36862746,  0.30980393,  0.63529414,  1.        ]])
        

        【讨论】:

        • cm.Spectral 还存在吗? PyDev 告诉我它没有。
        • 是的,它确实做到了github.com/matplotlib/matplotlib/blob/…
        • 好吧,我后来发现我可以像cs = cm.get_cmap('Spectral')(1.*m/K) 一样访问它而不会抱怨 pydev,所以无论出于何种原因,这对我的设置都有效吗?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-08
        • 2021-09-14
        • 2017-03-26
        • 2021-01-16
        • 2012-08-16
        • 2016-03-16
        相关资源
        最近更新 更多