标签: multiple-axes

Plotly:带有多个轴的分组条形图

当我barmode='group'进入Layoutwhile时trace2 = Bar(...,yaxis='y2'),这会导致条形堆叠或重叠,而不是将它们分组.如何在有多个轴的情况下对条形图进行分组?

我去了这些但没有用:

python plot bar-chart multiple-axes plotly

10
推荐指数
3
解决办法
2853
查看次数

Gnuplot:相对于x1轴绘制x2轴

我似乎在网上找到这个问题的答案有些困难.标题是基本问题,但更具体地说,我希望有两个x轴,一个位于图的顶部,取决于底部的一个.然而,这不是一个简单的关系,即x2!= 5*x1或类似的东西.关系由数据文件本身给出.所以更具体地说,我有一个看起来像这样的文件:

 V     T       P
2.0   15.0   0.586
3.0   17.4   0.798
4.0   25.3   1.023
5.0   28.9   1.124
6.0   30.2   1.456
Run Code Online (Sandbox Code Playgroud)

我想在x1y1轴上绘制相对于(wrt)P的T曲线,并在x2y1轴上绘制T wrt V. 因此,x1轴将显示P范围,x2将在x1的相应位置显示V范围,即x1轴上的0.586将在相同位置的x2轴上具有2.0.这实际上在Gnuplot中是否可行,或者我必须与两个x轴有关系才能做到这一点?任何帮助将不胜感激.先感谢您.

plot gnuplot multiple-axes

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

将第二轴添加到极坐标图中

我尝试在一个图中绘制两个极坐标图.见下面的代码:

fig = super(PlotWindPowerDensity, self).get_figure()
    rect = [0.1, 0.1, 0.8, 0.8]
    ax = WindSpeedDirectionAxes(fig, rect)

    self.values_dict = collections.OrderedDict(sorted(self.values_dict.items()))
    values = self.values_dict.items()
    di, wpd = zip(*values)
    wpd = np.array(wpd).astype(np.double)
    wpdmask = np.isfinite(wpd)
    theta = self.radar_factory(int(len(wpd)))

    # spider plot
    ax.plot(theta[wpdmask], wpd[wpdmask], color = 'b', alpha = 0.5)
    ax.fill(theta[wpdmask], wpd[wpdmask], facecolor = 'b', alpha = 0.5)

    # bar plot
    ax.plot_bar(table=self.table, sectors=self.sectors, speedbins=self.wpdbins, option='wind_power_density', colorfn=get_sequential_colors)

    fig.add_axes(ax)
    return fig
Run Code Online (Sandbox Code Playgroud)

结果到现在为止

条形的长度是数据库(该扇区的采样点数).条形图的颜色显示相应扇区中某些值区(例如2.5-5 m/s)的频率(蓝色:低,红色:高).蓝蜘蛛图显示每个扇区的平均值.

在所示的图中,每个图的值是相似的,但这种情况很少见.我需要将第二个绘图分配给另一个轴并在另一个方向上显示该轴.

编辑:

在乔的好答案之后,我得到了这个数字的结果. 临时结果 这几乎是我想要实现的一切.但有些观点我无法弄清楚.

  1. 该图用于动态变化的数据库.因此,我需要一种动态的方式来获得圆圈的相同位置.直到现在我解决它:

    start, end = ax2.get_ylim()
    ax2.yaxis.set_ticks(np.arange(0, end, end / len(ax.yaxis.get_ticklocs()))) …
    Run Code Online (Sandbox Code Playgroud)

python matplotlib multiple-axes

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

如何删除极坐标网格线并添加长轴刻度

有人可以帮我删除在我的极坐标图中形成环的网格线。我想保留(甚至加粗)轴并为每个轴标签添加刻度。

这是我正在使用的代码、绘图图像以及我想要的轴图像。

import numpy as np
import pylab as pl
import matplotlib.pyplot as py

class Radar(object):

    def __init__(self, fig, titles, labels, rect=None):
        if rect is None:
            rect = [0.05, 0.05, 0.95, 0.95]

            self.n = len(titles)
            self.angles = [a if a <=360. else a - 360. for a in np.arange(90, 90+360, 360.0/self.n)] 
            self.axes = [fig.add_axes(rect, projection="polar", label="axes%d" % i) 
                             for i in range(self.n)]

            self.ax = self.axes[0]
            self.ax.set_thetagrids(self.angles, labels=titles, fontsize=12, weight="bold")

            for ax in self.axes[1:]:
                ax.patch.set_visible(False)
                ax.grid("off")
                ax.xaxis.set_visible(False)            

            for ax, angle, label …
Run Code Online (Sandbox Code Playgroud)

matplotlib gridlines python-3.x radar-chart multiple-axes

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

如何在matplotlib子图图像轴之间强制相同的大小

假设我有以下代码来创建三个并排图像:

    n=10
    x = np.random.rand(n,1)
    y = np.random.rand(1,n)
    z = np.random.rand(n,n)

    fig, ax = plt.subplots(1, 3)
    ax[0].imshow(x)
    ax[1].imshow(z)
    ax[2].imshow(y)
Run Code Online (Sandbox Code Playgroud)

但是,轴会自动缩放,以使第一个图像中的垂直轴大于第二个图像中的垂直轴。

在此处输入图片说明

有没有一种方法可以以编程方式强制所有大小的图像尺寸n在三个图中看起来相同,而与窗口大小无关?我正在寻找一种链接轴或图像的方法,以使第一个图的垂直轴与第二个图的垂直轴具有相同的大小,而第三个图的水平轴与不论窗口大小如何,第二个绘图的水平轴。即这样的事情: 在此处输入图片说明

python axes matplotlib multiple-axes imshow

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

Matplotlib 具有多个轴的拾取事件

我正在使用两个轴进行绘图,支持选取线条。我正在使用 matplotlib 和 twinx() 命令。不幸的是,选择事件仅针对最顶部轴中的艺术家调用(请参见下面的示例)。

import matplotlib.pyplot as plt
import numpy as np

def onPick(event):
    print(event.artist.get_label())
    
def pick():
    fig=plt.figure(figsize=(5, 4), dpi=100, tight_layout=True)
    axis_1=fig.add_subplot(111)
    axis_2=axis_1.twinx()

    axis_1.set_ylim(0, 10)
    axis_2.set_ylim(0, 10)

    x=np.array([1,2,3,4])
    y_1=np.array([1,1,1,1])
    y_2=y_1+4
    
    axis_1.plot(x, y_1, picker=5, label='line_1')
    axis_2.plot(x, y_2, picker=5, label='line_2')
    
    fig.canvas.mpl_connect('pick_event', onPick)
    plt.show()

if __name__=='__main__':
    pick()
Run Code Online (Sandbox Code Playgroud)

有没有办法从下面的轴中选取线?

matplotlib python-3.x multiple-axes

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

Matplotlib 寄生对数轴勾选不需要的镜像

我正在尝试使用 mpl_toolkits.axes_grid1 中的 host_subplot 制作一个具有两个 y 轴的图,其中一个是对数轴,一个是线性轴。该图看起来不错,但辅助 y 轴(右)的小刻度也显示在图内部的主 y 轴(左)上。

import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import host_subplot
import mpl_toolkits.axisartist as AA

host = host_subplot(111)
host.set_yticks(np.arange(-12, -3, 1.0))

par1 = host.twinx()
par1.set_ylim( 2.7040e+3, 1.3552e+7)
par1.set_yscale('log')

minorLocator_x1 = MultipleLocator(0.3333)
minorLocator_y1 = MultipleLocator(0.5)
host.xaxis.set_minor_locator(minorLocator_x1)
host.yaxis.set_minor_locator(minorLocator_y2)
Run Code Online (Sandbox Code Playgroud)

剧情是这样的。 您可以看到右侧 y 轴刻度如何镜像到左侧 y 轴。

我可以使用以下方法修复镜像小对数轴刻度:

host = host_subplot(111, axes_class=AA.Axes)
Run Code Online (Sandbox Code Playgroud)

但是,这会产生另一个问题,即 x 轴刻度标签显示在图窗内部,就像 x 轴标签一样。

即使我尝试手动偏移,x 标签现在也不会移动。

关于如何规避这些问题有什么想法吗?

python matplotlib axis-labels multiple-axes

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

Plotly (Python) - 100 多个子图 y 轴

我正在处理大数据集,需要绘制多个堆叠趋势图,但遇到了与绘图中允许的 y 轴数量相关的问题。我尝试了多种方法来解决这个问题,但没有效果。

每当我尝试使用 100 多个 y 轴趋势绘制数据图表时,趋势就会开始超越之前的趋势。这是我尝试绘制 106 种趋势的图像:

106 趋势

如果将趋势数量减少到 99 个趋势,则所有这些都会显示在图表中:

99 种趋势

我正在使用plotly 的python API 在ipython 笔记本中构建这些图表。

一张图中允许的 y 轴数量是否有限制?

plot python-2.7 subplot multiple-axes plotly

5
推荐指数
0
解决办法
428
查看次数

在条形图上叠加箱线图 matplotlib/python

我试图在 matplotlib 中使用单独的 y 轴在条形图上叠加一组箱线图。我在任何地方都找不到示例,并且尝试了我能想到的所有方法ax.set_zorder()和 ax2.set_alpha()。有没有办法仅从箱线图设置背景不透明?ax.patch.set_facecolor('None')完全删除背景...

这是我尝试过的:

import matplotlib.pyplot as plt
import numpy as np

example_data = [1,2,1],[1,2,2,2],[3,2,1]

data = [i for i in example_data]

data_len = [len(i) for i in example_data]

labels = ['one','two','three']

plt.figure()

fig, ax = plt.subplots()

plt.boxplot(data)

ax.set_xticklabels(labels,rotation='vertical')


ax2 = ax.twinx()

ax2.bar(ax.get_xticks(),data_len,color='yellow', align='center')

ax2.set_zorder(1)

ax.set_zorder(2)

ax2.set_alpha(0.1)

ax.patch.set_facecolor('None')

plt.show()
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助。

python plot background matplotlib multiple-axes

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

R Plotly:aspectmode='cube' 在 3D 散点图中不使轴相等

我正在制作主成分的 3D 散点图(附图片)。尽管我使用的是aspectmode='cube',但轴的大小不相等。

在此处输入图片说明

我创建了一个 MRE 来测试,在那个测试中,轴是相等的。所以,我很困惑。

axx <- list(
  gridcolor='rgb(255, 255, 255)',
  zerolinecolor='rgb(255, 255, 255)',
  showbackground=TRUE,
  backgroundcolor='rgb(230, 230,230)'
)

df = data.frame(
  X=rnorm(100, mean=-5, sd=2),
  Y=rnorm(100, mean=5, sd=5),
  Z=rnorm(100, mean=20, sd=10),
  color=sample(c('R','G'), 100, replace = T)
)

plot_ly(
  data=df, 
  x = ~X, 
  y = ~Y, 
  z = ~Z, 
  color=~color
  ) %>%
  add_markers(size=3) %>%
  # layout(autosize = F, width = 1000, height = 1000)
  layout(
    # autosize=F,
    # width=700,
    # height=700,
    aspectmode='cube',
    title = 'MiSeq-239 Principal Components',
    scene = …
Run Code Online (Sandbox Code Playgroud)

3d r multiple-axes plotly r-plotly

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