plotly.express.histogram()我想使用每个子图都有自己的 x轴和 y 轴(为了更好的可读性)来绘制具有行和列面的直方图。在查看文档时(例如,转到“直方图分面网格”部分),我可以看到很多重复 x 轴和 y 轴的示例。但就我而言,这并不是自动完成的。
import numpy as np
import pandas as pd
import plotly.express as px
# create a dummy dataframe with lots of variables
rng = np.random.default_rng(42)
n_vars = 3
n_samples = 10
random_vars = [rng.normal(size=n_samples) for v in range(n_vars)]
m = np.vstack(random_vars).T
columns = pd.MultiIndex.from_tuples([('a','b'),('a','c'),('b','c')],names=['src','tgt'])
df = pd.DataFrame(m,columns=columns)
# convert to long format
df_long = df.melt()
# plot with plotly
fig = px.histogram(df_long,x='value',facet_row='src',facet_col='tgt')
fig.update_layout(yaxis={'side': 'left'})
fig.show()
Run Code Online (Sandbox Code Playgroud)
这给了我:
如何事后配置图形以便为每个子图显示 x 轴和 y …
所以我试图创建一个数字,从数据点呈现一个3d图,以及3个其他子图中的3个投影图.我可以毫无问题地为投影添加子图,但是当我尝试将3维图放入图中时,事情会适得其反.
这是我的代码:
def plotAll(data):
fig = plt.figure()
plot_3d = fig.add_subplot(221)
ax = Axes3D(plot_3d)
for i,traj in enumerate(data.values()):
ax.plot3D([traj[0][-1]],[traj[1][-1]],[traj[2][-1]],".",color=[0.91,0.39,0.046])
#plot_12v13 = fig.add_subplot(222)
#plot_projections(data,0,1)
#plot_13v14 = fig.add_subplot(223)
#plot_projections(data,1,2)
#plot_12v14 = fig.add_subplot(224)
#plot_projections(data,0,2)
#plt.plot()
Run Code Online (Sandbox Code Playgroud)
抛出:'AxesSubplot'对象没有属性'transFigure'
我正在使用matplotlib 0.99.3,非常感谢任何帮助,谢谢!
# Import plotting routines
from pylab import *
# 1D ODE that has a pitchfork bifurcation
# x_dot = r * x - x * x * x
def PitchforkODE(r,x):
return r * x - x * x * x
# 1D Euler
def OneDEuler(r,x,f,dt):
return x + dt * f(r,x)
# Improved 1D Euler
def ImprovedOneDEuler(r,x,f,dt):
xtemp = x + dt * f(r,x)
return x + dt * ( f(r,x) + f(r,xtemp) ) / 2.0
# 4th Order Runge-Kutta …Run Code Online (Sandbox Code Playgroud) 我还没有找到一个解决方案,调整底部和顶部图的高度破碎轴示例的matplotlib.
顺便说一句:两个地块之间的空间可以通过以下方式调整:
plt.subplots_adjust(hspace=0.03)
Run Code Online (Sandbox Code Playgroud)
更新:
我几乎用gridspec解决了这个问题:
"""
Broken axis example, where the y-axis will have a portion cut out.
"""
import matplotlib.pylab as plt
# NEW:
import matplotlib.gridspec as gridspec
import numpy as np
pts = np.array([ 0.015, 0.166, 0.133, 0.159, 0.041, 0.024, 0.195,
0.039, 0.161, 0.018, 0.143, 0.056, 0.125, 0.096, 0.094, 0.051,
0.043, 0.021, 0.138, 0.075, 0.109, 0.195, 0.05 , 0.074, 0.079,
0.155, 0.02 , 0.01 , 0.061, 0.008])
pts[[3,14]] += .8
# NEW:
gs = …Run Code Online (Sandbox Code Playgroud) 在下面的例子中,我尝试为四个"Power"级别制作"Emission"与"Voltage"的箱线图,每个功率级别占据一个子图.
fig = plt.figure(figsize=(16,9))
i = 0
for Power in [10, 20, 40, 60]:
i = i+1
ax = fig.add_subplot(2,2,i)
subdf = df[df.Power==Power]
bp = subdf.boxplot(column='Emission', by='Voltage', ax=ax)
fig.suptitle('My Own Title')
Run Code Online (Sandbox Code Playgroud)
问题是,
fig.suptitle('My Own Title')
Run Code Online (Sandbox Code Playgroud)
命令不会刷新默认的"按电压分组"的格式.我在这里错过了什么?或者这是一个错误?
谢谢.
我想使用pandas数据帧(称为df)在图上创建多个子图.
我原来的情节在这里:
df.plot(x='month', y='number', title='open by month',color="blue")
Run Code Online (Sandbox Code Playgroud)
我尝试了matplotlib的这个网站pyplot教程的"使用数字和子图"部分的多次尝试
[1]
plt.figure(1)
df.plot.(figure(1), sublot(211), x='month', y='number', title='open byXXX"
df.plot.(figure(1), sublot(212), x='month', y='number', title='open byXXX"
Run Code Online (Sandbox Code Playgroud)
[2]
plt.figure(1)
df.plot.subplot(211)(x='month', y='number', title='open byXXX")
df.plot.subplot(212)(x='month', y='number', title='open byXXX")
Run Code Online (Sandbox Code Playgroud) 我创建了一个包含4个子图的图形,如:
y = [2 2 3; 2 5 6; 2 8 9; 2 11 12];
fig = figure
for i = 1 : 4
h(i) = subplot(1,4,i)
bar(y)
end
Run Code Online (Sandbox Code Playgroud)
现在我想交换子图的顺序.例如,第一个子图应该进入最后一列(第4个),第二个子图应该与第3个进行交换.
如果不重新生成这个数字是否可行?
说我有这个数据框:
Type Cat1 Cat2 Cat3
0 A 0.384000 0.393000 0.458000
1 B 0.603337 0.381470 0.299773
2 C 0.585797 0.452570 0.317607
3 D 0.324715 0.765212 0.717755
Run Code Online (Sandbox Code Playgroud)
我这样绘制(从这里开始):
axes = df.set_index('Type').plot.bar(subplots=True, legend=False)
plt.subplots_adjust(hspace=0.35)
Run Code Online (Sandbox Code Playgroud)
我的问题:如何ylim为每个子图设置不同的值?以及如何修改Cat标题的字体大小?
标题基本概括了所有内容.我有一个包含两个子图的笔记本,并希望在它们之间创建一些空间.他们说每次看起来都太近了.
我想在地块之间添加空间,但是当我玩边距游戏时,它会重叠或割伤。这是代码:
library(plotly)
plotList <- function(nplots) {
lapply(seq_len(nplots), function(x) plot_ly())
}
s1 <- subplot(plotList(6), nrows = 2, shareX = TRUE, shareY = TRUE)
s2 <- subplot(plotList(2), shareY = TRUE)
p <- subplot(s1, s2, plot_ly(), nrows = 3, margin = 0.04, heights = c(0.6, 0.3, 0.1))
print(p)
Run Code Online (Sandbox Code Playgroud)
我得到这个:
而我希望这样的东西(用油漆完成的图像)在不同子图之间有更大的间距:
我应该怎么做 ?