小编use*_*472的帖子

如何包含matplotlib Figure对象作为子图?

如何使用matplotlib Figure对象作为子图?具体来说,我有一个创建matplotlib Figure对象的函数,我想将此作为子图包含在另一个Figure中。

简而言之,以下是我尝试过的简化代码:

    fig1 = plt.figure(1, facecolor='white')
    figa = mySeparatePlottingFunc(...)
    figb = mySeparatePlottingFunc(...)
    figc = mySeparatePlottingFunc(...)
    figd = mySeparatePlottingFunc(...)
    fig1.add_subplot(411, figure=figa)
    fig1.add_subplot(412, figure=figb)
    fig1.add_subplot(413, figure=figc)
    fig1.add_subplot(414, figure=figd)
    fig1.show()
Run Code Online (Sandbox Code Playgroud)

可悲的是,这失败了。我知道从函数调用返回的各个图是可行的-我做了一个figa.show(),...,figd.show()来确认它们没问题。我在上述代码块的最后一行得到的结果是fig1.show(),它是四个空图的集合,这些图具有框架以及x和y勾号/标签。

我已经做了大量的谷歌搜索,并进行了广泛的实验,但是很明显,我错过了一些非常微妙或令人尴尬的显而易见的东西(我会很高兴能够成为后者)解开)。

感谢您提供的任何建议!

matplotlib

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

如何将matplotlib colorbar刻度线更改为面向外?

我在matplotlib示例库中注意到,所有以垂直彩条为特色的图都有朝内的刻度线,

(即从酒吧的边缘进入酒吧的彩色区域).

对于我正在使用的绘图和颜色的类型,将刻度线向外朝向会更好.

我如何从matplotlib库(见下文)修改这个简单的例子,在其颜色条上有朝外的刻度线?

from matplotlib.colors import LogNorm
from pylab import *

#normal distribution center at x=0 and y=5
x = randn(100000)
y = randn(100000)+5

hist2d(x, y, bins=40, norm=LogNorm())
colorbar()
show()
Run Code Online (Sandbox Code Playgroud)

matplotlib colorbar

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

散景颜色条颜色条右边的垂直标题?

我正在尝试做一些我通常认为微不足道的事情,但在散景中似乎很困难:在绘图中添加垂直颜色条,然后使颜色条的标题(也就是颜色映射后面的变量)出现在一侧颜色栏的位置,但与水平方向顺时针旋转90度。

从我能看到的bokeh ColorBar()接口(同时查看文档和对该元素使用python解释器的help()函数)来看,这是不可能的。无奈之下,我添加了自己的基于Label()的注释。这可行,但很笨拙,并且在散景服务情况下部署时显示奇怪的行为-情节上数据窗口的宽度与标题颜色栏标题字符串的长度成反比。

下面,我包括了bokeh服务器mpg示例的修改版本。抱歉,因为它很复杂,但是我认为这是使用bokeh附带的基础结构/数据来说明问题的最佳方法。对于不熟悉bokeh服务的用户,此代码段需要保存到目录中名为main.py的文件中(为了便于说明,我们假设使用CrossFilter2-,而在CrossFilter2的父目录中,则需要调用该命令)

bokeh serve --show CrossFilter2
Run Code Online (Sandbox Code Playgroud)

然后它将显示在浏览器窗口(localhost:5006 / CrossFilter2)中,如果您使用颜色选择小部件,您将明白我的意思,即简短的变量名(例如“ hp”或“ mpg”)会产生更宽的数据显示窗口的时间要比变量名(例如“ accel”或“ weight”)更长。我怀疑标签元素的大小可能存在错误-它们的x和y尺寸已互换-并且散景不了解标签元素是否已旋转。

我的问题是:

  1. 我是否真的必须麻烦这种麻烦才能获得一个简单的颜色条标签功能,而我在matplotlib / plotly中几乎没有麻烦?
  2. 如果必须在示例代码中看到麻烦,是否可以通过其他方法避免数据窗口宽度问题?

    import numpy as np
    import pandas as pd
    
    from bokeh.layouts import row, widgetbox
    from bokeh.models import Select
    from bokeh.models import HoverTool, ColorBar, LinearColorMapper, Label
    from bokeh.palettes import Spectral5
    from bokeh.plotting import curdoc, figure, ColumnDataSource
    from bokeh.sampledata.autompg import autompg_clean as df
    
    df = df.copy()
    
    SIZES = list(range(6, 22, 3))
    COLORS = Spectral5
    
    # data cleanup
    df.cyl = df.cyl.astype(str)
    df.yr = df.yr.astype(str) …
    Run Code Online (Sandbox Code Playgroud)

bokeh

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

标签 统计

matplotlib ×2

bokeh ×1

colorbar ×1