我正在尝试创建等值分布图。下面是一个有效的例子:
df = px.data.gapminder().query("year==2007")
fig = go.Figure(data=go.Choropleth(
locations=happy['iso'], # Spatial coordinates
z = happy['Happiness'].astype(float), # Data to be color-coded
colorbar_title = "Happiness Score",
))
fig.update_layout(
title_text = 'Life Expectancy in 2007'
)
fig.show()
Run Code Online (Sandbox Code Playgroud)
但是,我想创建一个下拉菜单来更改不同变量(例如,预期寿命、GDP、人口)之间的绘图值。我相信这是可能的,但还没有在网上看到任何教程。他们中的大多数只使用其他类型的条形图或散点图。
这是我到目前为止所得到的:
# Initialize figure
fig = go.Figure()
# Add Traces
fig.add_trace(go.Figure(data=go.Choropleth(
locations=df['iso_alpha'], # Spatial coordinates
z = df['lifeExp'].astype(float), # Data to be color-coded
colorbar_title = "Life Expectancy")))
fig.add_trace(go.Figure(data=go.Choropleth(
locations=df['iso_alpha'], # Spatial coordinates
z = df['gdpPercap'].astype(float), # Data to be color-coded
colorbar_title = "GDP per capita")))
Run Code Online (Sandbox Code Playgroud)
但我不确定如何从这里开始。我是否需要通过 …
有没有人有任何建议在 r 中对具有 NA 值的时间序列实施增强的 dickey fuller 测试?
adf.test 函数不接受 NA 值。
任何帮助表示赞赏!
如何使用 group_map 将自定义函数应用于分组标题中的每个组。我想以公斤为单位找到每组的平均体重,并为每个案例创建一个新列。因此,每组中的每个案例都应该具有相同的平均权重。
# custom function
meanKG = function(vector) {
return(mean(vector, na.rm=TRUE) / 2.2)
}
df = mtcars %>% group_by(cyl)
# A tibble: 32 x 11
# Groups: cyl [3]
mpg cyl disp hp drat wt qsec vs am gear carb
* <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 21 6 160 110 3.9 2.62 16.5 0 1 4 4
2 21 6 160 110 3.9 2.88 17.0 0 1 4 4
3 22.8 4 …Run Code Online (Sandbox Code Playgroud) 我试图在 2x2 子图中绘制 4 个 Shap 依赖图,但无法使其工作。我已经尝试过以下方法:
fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(10,10))
ax1 = plt.subplot(221)
shap.dependence_plot('age', shap_values[1], X_train, ax=ax1)
ax2 = plt.subplot(222)
shap.dependence_plot('income', shap_values[1], X_train, ax=ax2)
ax3 = plt.subplot(223)
shap.dependence_plot('score', shap_values[1], X_train, ax=ax2)
Run Code Online (Sandbox Code Playgroud)
和这个:
plt.figure(figsize=(10,5))
plt.subplot(1,2,1)
shap.dependence_plot('age', shap_values[1], X_train)
plt.subplot(1,2,2)
shap.dependence_plot('income', shap_values[1], X_train)
plt.subplot(2,2,3)
shap.dependence_plot('score', shap_values[1], X_train)
plt.tight_layout()
plt.show()
Run Code Online (Sandbox Code Playgroud)
它不断将它们绘制在不同的行上,而不是 2x2 格式。
我想创建许多变量,如x1,x2,x3,以便在syms旁边使用,所以它看起来像这样:
syms x1 x2 x3 x4 ... x50 x51 .... xn
n是我需要的变量数.
有没有办法做到这一点?
我有一个向量,我想找到连续至少3次的0的块的索引.
y = [1 1 1 0 1 1 0 0 0 1 1 1 0 1 0 1 0 0 1 0 0 0 0 1 1];
Run Code Online (Sandbox Code Playgroud)
所以在这种情况下,块应该是[0 0 0]从7-9和[0 0 0 0]从20-23.输出应该给我索引,如[7,9]和[20,23],甚至更好,将这些0的块更改为单个NAN成为:
[1 1 1 0 1 1 NAN 1 1 1 0 1 0 1 0 0 1 NAN 1 1]
Run Code Online (Sandbox Code Playgroud)
谢谢!
我试图在数据帧的所有列中找到一个字符串。
import pandas as pd
df = pd.DataFrame([['a', 'b'], ['c', 'd'], ['e', 'a']], columns=["A", "B"])
for col in df:
df[col].str.contains('a')
0 True
1 False
2 False
Name: A, dtype: bool
0 False
1 False
2 True
Name: B, dtype: bool
Run Code Online (Sandbox Code Playgroud)
但是,上面的代码只返回布尔值而不是我想要的格式(以表格形式显示行和列),这可以在特定列中搜索时实现:
df[df.A == 'a']
A B
0 a b
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮忙吗?
如何制作交互式多折线图,其中只有一条感兴趣的线是彩色的,而其他线都是灰色的:
所以在这里,我希望美国为红色,而其他国家为灰色。这是我到目前为止:
import pandas as pd
import plotly.express as px
df = px.data.gapminder()
fig = px.line(df, x='year', y='pop', color="country", hover_name="country",color_discrete_map={'United States': 'Red'})
fig.update_layout(autosize=False,width=700,height=500)
fig.show()
Run Code Online (Sandbox Code Playgroud)
但它只改变悬停颜色,不改变线条颜色
我尝试将 US 单独绘制为自己的图形,然后将其更新为原始图形,但效果不佳。
我正在尝试使用 sns 绘制多线图,但仅将美国线保持为红色,而其他国家/地区为灰色
这是我到目前为止所拥有的:
df = px.data.gapminder()
sns.lineplot(x = 'year', y = 'pop', data = df, hue = 'country', color = 'grey', dashes = False, legend = False)
Run Code Online (Sandbox Code Playgroud)
但这不会将线条更改为灰色。我想在这之后,我可以单独添加红色的美国线......
如何组合单元格阵列中的单元格以形成单个单元格?例如:
a = {'I', 'am', 'a', 'noob', 'in', 'matlab'}
Run Code Online (Sandbox Code Playgroud)
进入1个细胞
a = 'I am a noob in matlab'
Run Code Online (Sandbox Code Playgroud) 我从第二个脚本调用函数,但无法识别第一个脚本中的变量.
SCRIPT1
selection = int(raw_input("Enter Selection: "))
if selection == 1:
import script2
script2.dosomething()
Run Code Online (Sandbox Code Playgroud)
SCRIPT2
def dosomething():
while selection == 1:
......
......
Run Code Online (Sandbox Code Playgroud)
它显示"NameError:全局名称'选择'未定义"
它与全局变量有关吗?
如果它的值为 1,我试图删除字典中键的最后一个字符:
d = {'hours': 1, 'seconds': 30}
for k,v in d.items():
if v == 1:
print(k)
d[k[:-1]] = d.pop(k)
Run Code Online (Sandbox Code Playgroud)
但是,它会一直弹出,直到键剩下 1 个字符为止。在这种情况下,小时应该变成小时时变成了小时。
python ×7
matlab ×3
matplotlib ×2
plotly ×2
r ×2
arrays ×1
cell-array ×1
choropleth ×1
dataframe ×1
dictionary ×1
dplyr ×1
function ×1
linechart ×1
na ×1
pandas ×1
seaborn ×1
shap ×1
string ×1
subplot ×1
tibble ×1
time-series ×1
variables ×1