我正在使用带有数据框的 seaborn FacetGrid 制作绘图:df。由于色调功能,我正在使用 sns。
见代码:
import seaborn as sns
import matplotlib.pyplot as plt
grid = sns.FacetGrid(df,hue='var')
grid.map(plt.scatter, x, y).add_legend()
grid.set(ylim=ylim,xlim=xlim)
plt.show()
Run Code Online (Sandbox Code Playgroud)
通常我会使用以下方法访问 figsize:
fig, ax = plt.subplots(figsize=(20, 10))
Run Code Online (Sandbox Code Playgroud)
或者
plt.figure(figsize=(20,10))
Run Code Online (Sandbox Code Playgroud)
但是现在,因为我使用的是 seaborn,所以我不知道如何访问图形对象。
如何访问图形对象以更改绘图的大小?
我有两个数据帧,具有唯一的x和y坐标,我想在同一个图中绘制它们.我现在在同一图中绘制两个数据帧:
plt.plot(df1['x'],df1['y'])
plt.plot(df2['x'],df2['y'])
plt.show
Run Code Online (Sandbox Code Playgroud)
但是,熊猫也有绘图功能.
df.plot()
Run Code Online (Sandbox Code Playgroud)
我怎么能实现与我的第一个例子相同但使用pandas功能?
我使用数据框方法绘制了一个图表plot:
ax = df1.plot(x='Lat', y='Lon', kind='scatter', c='Thickness')
Run Code Online (Sandbox Code Playgroud)
结果是一个散点图,其中点按 中设置的参数缩放c='Thickness'。图表旁边的颜色条自动接收标签Thickness。我想改变它。
我知道 colorbar 方法set_label,但我不知道如何从axpandasplot函数返回的值访问 colorbar 对象。
如何访问图中的颜色条对象以更改其标签?
我有一个连续因变量 y 和一个名为 control_grid 的独立分类变量 x。x 包含两个变量:c 和 g
使用 python 包 statsmodel 我试图查看自变量是否对 y 变量有显着影响,如下所示:
model = smf.ols('y ~ c(x)', data=df)
results = model.fit()
table = sm.stats.anova_lm(results, typ=2)
Run Code Online (Sandbox Code Playgroud)
打印该表将其作为输出:
OLS Regression Results
==============================================================================
Dep. Variable: sedimentation R-squared: 0.167
Model: OLS Adj. R-squared: 0.165
Method: Least Squares F-statistic: 86.84
Date: Fri, 13 Jul 2018 Prob (F-statistic): 5.99e-19
Time: 16:15:51 Log-Likelihood: -2019.2
No. Observations: 436 AIC: 4042.
Df Residuals: 434 BIC: 4050.
Df Model: 1
Covariance Type: nonrobust
=====================================================================================
coef std …Run Code Online (Sandbox Code Playgroud) 我想使用matplotlib.pyplot.pcolormesh绘制深度图。
我有一个xyz文件三列,即x(lat),y(lon),z(dep)。
所有列的长度相等
pcolormesh需要矩阵作为输入。因此,使用numpy.meshgrid,我可以将x和y转换为矩阵:
xx,yy = numpy.meshgrid(x_data,y_data)
Run Code Online (Sandbox Code Playgroud)
这很好用...但是,我不知道如何创建我的深度(z)数据矩阵...如何为我的z_data创建与x_data和y_data矩阵相对应的矩阵?
我一直在尝试最简单的方法,在excel中创建散点图。我有一个x值和一组y值。但是excel以某种方式认为它知道的更好,并创建了自己的x值集(范围介于0到10之间)。而我的x值介于40-140之间。手动将x轴的限制更改为40-140只是简单地做到了,所以我不再看到我的数据点,因为excel更改了我的x值。
Label X Y
A 47 3.5
B 95 40.5
C 47 10.5
D 95 21.5
E 91 21.5
F 45 18.5
G 91 61.5
H 45 0.5
I 130 40.5
J 90 10.5
Run Code Online (Sandbox Code Playgroud)
请参阅图片以进行澄清。我该如何解决!?
当我运行时:
import numpy as np
np.arange(14.1,15.1,0.1)
Run Code Online (Sandbox Code Playgroud)
我得到:
array([14.1, 14.2, 14.3, 14.4, 14.5, 14.6, 14.7, 14.8, 14.9, 15. ])
Run Code Online (Sandbox Code Playgroud)
但是当我运行时:
np.arange(15.1,16.1,0.1)
Run Code Online (Sandbox Code Playgroud)
我得到:
array([15.1, 15.2, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9, 16. , 16.1])
Run Code Online (Sandbox Code Playgroud)
失踪了15.1怎么办?为什么在一种情况下输出显示最终数字而在另一种情况下不显示?
我已阅读有关numpy-arange的文档。它指出“间隔不包括停止值,除非在某些情况下步长不是整数并且浮点舍入会影响输出的长度。”
我的问题是: 如何让代码表现一致?
我正在迭代一组成对数字(例如 4 和 15,或 44.2 和 46.4),对于每一对,我想创建一个在对之间步长为 0.1 的列表(例如,4 和 4.5 将是:4.1、4.2、 4.3、4.4、4.5)。但重要的是代码的行为一致。
构建此问题:Q
假设我有一个这样的数据框:
import pandas as pd
d = {'y':[1.2,2.41,3.12,4.76],'x':['A','B'],'r1':['a','b','c','d'],'r2':['a2','b2','c2','d2']}
df = pd.DataFrame(d)
Run Code Online (Sandbox Code Playgroud)
y 是连续变量。x 是分类的并且是固定分量。它是二进制的。r1、r2 是分类的。它们是随机成分。
我会将其传递给混合模型,如下所示:
import statsmodels.formula.api as smf
md = smf.mixedlm("y ~ x", df, groups=df["r1"], re_formula="~ r1")
Run Code Online (Sandbox Code Playgroud)
这很好用。
但现在我想添加第二个随机变量,但这只能作为一维数组来完成...而且我不知道如何重新排列我将两个变量传递给的数据groups作为一维数组
因此总结一下:如何以这种方式重新排列数据框,以便我可以将 2 个变量作为groups一维数组传递?请显示其语法。
python ×7
matplotlib ×4
pandas ×3
dataframe ×2
numpy ×2
plot ×2
statsmodels ×2
anova ×1
coordinates ×1
excel ×1
figure ×1
matrix ×1
scatter-plot ×1
seaborn ×1
statistics ×1