我目前正在使用python 的 lark 解析器来尝试读取一些问题规范。我对扩展巴科斯-诺尔形式的“正确”语法感到困惑,尤其是关于如何分离 LHS 和 RHS。维基百科页面使用等号=
,lark 只需要一个冒号;请参阅云雀备忘单。其他来源使用::=
分隔符,例如atom ebnf 包。
有确定的答案吗?官方ISO 规范似乎建议“定义符号”应该是,=
但规范中似乎有回旋余地。那么为什么会有不同的版本呢?
我想在 FacetGrid 中的每个线图中挑选出某一行,以突出显示与其他选项相比的“默认”设置。
我尝试根据seaborn文档中的随机游走示例制作一个最小的示例
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
rs = np.random.RandomState(2020)
pos = rs.randint(-1, 2, (20, 5)).cumsum(axis=1)
pos -= pos[:, 0, np.newaxis]
step = np.tile(range(5), 20)
walk = np.repeat(range(20), 5)
df = pd.DataFrame(np.c_[pos.flat, step, walk],
columns=["position", "step", "walk"])
df["family"] = df["walk"] % 5
df["top"] = df.groupby("walk")["position"].transform("max")
df["importance"] = df["top"]+1
grid = sns.FacetGrid(df, col="family", col_wrap=3, hue="walk")
grid.map_dataframe(sns.lineplot, "step", "position", marker="o")
grid.add_legend()
Run Code Online (Sandbox Code Playgroud)
这给了我多面线图,所有线的宽度相同(当然):
我创建了一个额外的列,名为importance
; 我想根据此列设置线宽。我可以看到,通过一个简单的操作,seaborn.lineplot
您可以“分配 …