标签: subplot

如何在同一窗口中绘制来自不同函数的2个子图(图)?

由于特定原因,我有两个功能,每个功能在两个不同的窗口中创建一个图.是否可以在一个窗口中统一这两个图,而不统一功能?谢谢!

编辑:我有2个涉及的函数和一个数据库:file1.py中的函数1绘制了一个2d线图:

plt.figure("TEST12") 
ax=plt.subplot(111)
ax.plot(array[:,10])
Run Code Online (Sandbox Code Playgroud)

在file2.py中我的另一个函数,它绘制了一个填充的轮廓:

plt.figure("TEST13")
ax = plt.subplot(111)
ax.contourf(x,y,data)
plt.gca().set_aspect('equal')
Run Code Online (Sandbox Code Playgroud)

如果我plt.show像往常一样使用,结果是2个不同的窗口.

python matplotlib subplot

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

如何对齐MATLAB子图?

我的MATLAB子图未完全对齐,请参见下图中的绿色矩形在此输入图像描述.如何避免这种转变?

这是我正在尝试的

clear all;
clc;

RF=RF_data(:,2:end);

figure

subplot(3,4,1)

pos_pre = 1.3:1:3.3;    % for positioning

boxplot(RF(2:71,[45,47,46]),...
    'colors','b','positions',pos_pre,'width',0.18,...
    'symbol', 'bd', 'OutlierSize',3);
set(gca,'XTickLabel',{' '}) 
hold on  

pos_post = 1.55:1:3.55;   % Ignore this comment

boxplot(RF(72:end,[45,47,46]),'colors','r',...
    'positions',pos_post,'width',0.18,'symbol', 'rd','OutlierSize',3,...
    'factorseparator',1); 

set(gca,'XTick',1.5:1:3.5)  
set(gca,'XTickLabel',{'10a', '10b', '10c'}, 'FontSize', 7)

X = get(gca,'XLim');  
Y = get(gca,'YLim');
hold off 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

subplot(3,4,2)

pos_pre = 1.3:1:3.3;   % Ignore this comment

boxplot(RF(2:71,[17,16,15]),...
    'colors','b','positions',pos_pre,'width',0.18,...
    'symbol', 'bd', 'OutlierSize',3);
set(gca,'XTickLabel',{' '})  
hold on  

pos_post = 1.55:1:3.55;  % Ignore this comment

boxplot(RF(72:end,[17,16,15]),'colors','r',...
    'positions',pos_post,'width',0.18,'symbol', 'rd','OutlierSize',3,...
    'factorseparator',1); 

set(gca,'XTick',1.5:1:3.5) 
set(gca,'XTickLabel',{'7a', …
Run Code Online (Sandbox Code Playgroud)

matlab subplot matlab-figure

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

使用具有不同x轴的子图绘制每个图

我正在尝试使用其中的三个情节来绘制图形subplot.y轴为所有三条曲线是从同一-11而x轴是2.5,5,和10分别 所有三个图的问题x轴对于所有这些图看起来都相似.我尝试使用,axis square但它改变了方块.我想第一曲线从左侧和结束的点处开始,而从在一个点的左侧和结束,其中它是第一曲线的x轴的距离两倍第二个开始.第三个图必须从左边开始,并在x轴是第一个图的x轴的thripple的点处结束.有没有办法做到这一点?

这是一个带有空图的示例,仅用于显示我希望我的图形看起来如何.

我使用下面的代码,但遗憾的是它无法正常工作

figure
subplot (3,1,1);
xlabel('x cm')                                              
ylabel('y cm')                                          
grid on
set(gca, 'XTick', 0:0.5:2.5)
set(gca, 'YTick', -1:1:1)
xlim([0 2.5]);
ylim([-1 1]);
% axis square
subplot (3,1,2);
xlabel('x cm')                                              
ylabel('y cm')                                          
grid on
set(gca, 'XTick', 0:1:5)
set(gca, 'YTick', -1:1:1)
xlim([0 5]);
ylim([-1 1]);
% axis square
subplot (3,1,3);
xlabel('x cm')                                              
ylabel('y cm')                                          
grid on
set(gca, 'XTick', 0:2:10)
set(gca, 'YTick', -1:1:1)
xlim([0 10]);
ylim([-1 1]); …
Run Code Online (Sandbox Code Playgroud)

matlab plot figure subplot matlab-figure

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

matplotlib上的通用y标签未调整

我有两个子图,并且想为它们同时使用x和y轴标签。我的代码如下:

fig, ax = plt.subplots()
ax = fig.add_subplot(111)
ax1 = fig.add_subplot(211)
ax2 = fig.add_subplot(212)

ax.set_ylabel("array2 stuff")

plt.subplot(2, 1, 1)
plt.plot(array1, array2, 'o-', label='stuff')
plt.title("my stuff")

plt.legend(loc="lower left")
plt.grid()

plt.subplot(2, 1, 2)
plt.plot(array1, array2, 'o-', label='stuff')
plt.xlabel("Date")
ax.set_ylabel("array2 stuff")
plt.legent(loc="lower left")
plt.ylim(-constant, constant)
plt.grid()

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

x轴标签似乎可以工作,但是y标签不会在两个图之间居中。相反,它以下部图的y轴为中心。

python plot matplotlib subplot

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

所有子图的全局图例

我创建了一个matxlot子图的nxn矩阵,它包含相同类型的曲线(让我们将它们命名为signal1和signal2):

n=5
f, axarr = plt.subplots(n,n)
for i,signal_generator in enumerate(signal_generators):
  y=i%n
  x=(i-y)/n
  axarr[x, y].plot(signal_generator.signal1)
  axarr[x, y].plot(signal_generator.signal2)
Run Code Online (Sandbox Code Playgroud)

由于每个子图中的2个信号各自代表相同的类型,我想使用带有两个条目'signal1''signal2'的图形全局图例,而不是将相同的图例附加到每个子图.

我该怎么办?

python matplotlib subplot

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

Matplotlib:如何获得子图的三角矩阵?

我想将一组子图分成三行,第一行有一个子图,第二行有两个,第三行有三个。我做了以下事情:

fig, axes = plt.subplots(figsize=(10, 10), sharex=True, sharey=True, ncols=3, nrows=3)
x = np.linspace(0, 10, 100)
for i in range(3):
    for j in range(0, i+1):
        axes[i, j].plot(x, np.sin((i+j) *x))
Run Code Online (Sandbox Code Playgroud)

因此我得到: 在此处输入图片说明

如何删除三个空地块?

python matplotlib subplot

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

具有不同颜色条的子图

我有一个 2x3 的等高线图子图。我想要两个水平颜色条,一个用于前 2 列,一个用于第三列。我只能为每一列(因此,3 个颜色条)执行此操作,但我需要前两列的共享颜色条。

这是我的示例代码:

import numpy as np
import matplotlib.pyplot as plt

v = np.arange(-180,181,15)
y,x = np.meshgrid(v,v)

p1 = 100*np.sin(x+y)
p2 = 100*np.sin(2*x+y)
p3 = 100*np.sin(3*x+y)
p4 = 100*np.sin(4*x+y)
p5 = 5*np.cos(x+5*y)
p6 = 5*np.cos(x+6*y)

f, ax = plt.subplots(2,3,sharex='row',sharey='col',figsize=(4,6))

mina = min(min(p1.reshape(625,)),min(p2.reshape(625,)),min(p3.reshape(625,)),min(p4.reshape(625,)))
maxa = max(max(p1.reshape(625,)),max(p2.reshape(625,)),max(p3.reshape(625,)),max(p4.reshape(625,)))
minb = min(min(p5.reshape(625,)),min(p6.reshape(625,)))
maxb = max(max(p5.reshape(625,)),max(p6.reshape(625,)))

ax[0,0].contourf(x,y,p1,20,vmin=mina,vmax=maxa)
ax[0,0].set(adjustable='box-forced', aspect='equal')
l0 = ax[1,0].contourf(x,y,p2,20,vmin=mina,vmax=maxa)
ax[1,0].set(adjustable='box-forced', aspect='equal')
ax[0,1].contourf(x,y,p3,20,vmin=mina,vmax=maxa)
ax[0,1].set(adjustable='box-forced', aspect='equal')
l1 = ax[1,1].contourf(x,y,p4,20,vmin=mina,vmax=maxa)
ax[1,1].set(adjustable='box-forced', aspect='equal')
ax[0,2].contourf(x,y,p5,20,vmin=minb,vmax=maxb)
ax[0,2].set(adjustable='box-forced', aspect='equal')
l2 = ax[1,2].contourf(x,y,p6,20,vmin=minb,vmax=maxb)
ax[1,2].set(adjustable='box-forced', aspect='equal')

f.colorbar(l0, …
Run Code Online (Sandbox Code Playgroud)

python matplotlib colorbar subplot

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

在 for 循环中配置 matplotlib 子图

我正在尝试遍历 Pandas 数据框中的一些数据并绘制成不同的子图,但不太确定我做错了什么。

这是代码:

df2 = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))
fig, axes = plt.subplots(nrows=4, ncols=1, sharex=True)
for i, col in enumerate(df2.columns):
    print(col)
    axes[i] = df2[col].plot(kind="box")
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我怎样才能填满其他子图?

python matplotlib pandas subplot

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

使情节水平的 yaxis 标题

我正在尝试组合一系列R plotly绘图 - 垂直,但由于每个单独绘图的 y 轴标题是水平的,因此组合绘图变得混乱。

这是我的例子:

数据:

set.seed(1)
df <- data.frame(cluster=unlist(lapply(letters[1:10],function(i) rep(paste0("cluster:",i),200))),
                 group=rep(c(rep("A",100),rep("B",100)),10),val=rnorm(2000))
df$group <- factor(df$group,levels=c("A","B"))
Run Code Online (Sandbox Code Playgroud)

绘制一个图列表density,每个df$cluster

library(plotly)

plot.list <- lapply(unique(df$cluster),function(i){
  density.df <- do.call(rbind,lapply(c("A","B"),function(b){
    dens <- density(dplyr::filter(df,cluster == i,group == b)$val,adjust=1)
    return(data.frame(x=dens$x,y=dens$y,group=b,stringsAsFactors=F))
  }))
  density.df$group <- factor(density.df$group,levels=c("A","B"))
  
  if(i == unique(df$cluster)[1]){
    cluster.plot <- plot_ly(x=~density.df$x,y=~density.df$y,type='scatter',mode='lines',color=~density.df$group,line=list(width=3),showlegend=T) %>%
      layout(xaxis=list(title="Val",zeroline=F),yaxis=list(title=i,zeroline=F,showticklabels=F),legend=list(orientation="h",xanchor="center",x=0,y=1))
  } else{
    cluster.plot <- plot_ly(x=~density.df$x,y=~density.df$y,type='scatter',mode='lines',color=~density.df$group,line=list(width=3),showlegend=F) %>%
      layout(xaxis=list(title="Val",zeroline=F),yaxis=list(title=i,zeroline=F,showticklabels=F))
  }
  return(cluster.plot)
})
Run Code Online (Sandbox Code Playgroud)

然后,使用以下方法组合它们:

subplot(plot.list,nrows=length(plot.list),shareX=T,shareY=T,titleX=T,titleY=T)
Run Code Online (Sandbox Code Playgroud)

给出: 在此处输入图片说明

如何将每个图的 y 轴标题旋转plot.list为水平而不是垂直?

r title subplot plotly

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

如何在plotly中子绘制饼图?

如何在“无花果”中子绘制“pie1”,使其位于“第一个”位置。这就是我的做法,但它不起作用

    import pandas as pd
    import numpy as np
    import seaborn as sns
    import plotly.offline as pyp
    import plotly.graph_objs as go
    from plotly import tools
    import plotly.plotly as py
    from plotly.offline import iplot,init_notebook_mode
    from IPython.core.display import HTML
    import plotly.io

    df1=pd.read_excel('file.xlsx',sheet_name='sheet1',index=False)
    con_pivot=pd.pivot_table(con,index='Category',values=('Payment'),aggfunc='sum',margins=True,margins_name='Total')

    fig = tools.make_subplots(rows=2, cols=2, subplot_titles=('The first','3','2','4'))

    pie1=go.Pie(labels=con_pivot.index,values=con_pivot.values)
    fig.append_trace(pie1,1,1)
    pyo.plot(fig)
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。谢谢

python ipython pandas subplot plotly

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

标签 统计

subplot ×10

python ×7

matplotlib ×6

matlab ×2

matlab-figure ×2

pandas ×2

plot ×2

plotly ×2

colorbar ×1

figure ×1

ipython ×1

r ×1

title ×1