花了相当多的时间观察SO上的r和pandas标签,我得到的印象是pandas问题不太可能包含可重现的数据.这是值得的R社会一直要鼓励不错,并感谢像导游这样,新人能得到放在一起,这些例子一些帮助.能够阅读这些指南并返回可重现数据的人通常会更好地获得他们问题的答案.
我们如何为pandas问题创建良好的可重复示例?简单的数据帧可以放在一起,例如:
import pandas as pd
df = pd.DataFrame({'user': ['Bob', 'Jane', 'Alice'],
'income': [40000, 50000, 42000]})
Run Code Online (Sandbox Code Playgroud)
但是许多示例数据集需要更复杂的结构,例如:
datetime 指数或数据expand.grid()函数,它会产生某些给定变量的所有可能组合?)对于dput()难以使用几行代码进行模拟的数据集,是否有与R相当的R ,它允许您生成可复制粘贴的代码以重新生成数据结构?
我想创建与网格对应的点列表.因此,如果我想创建从(0,0)到(1,1)的区域网格,它将包含点(0,0),(0,1),(1,0),(1, 0).
我知道这可以通过以下代码完成:
g = np.meshgrid([0,1],[0,1])
np.append(g[0].reshape(-1,1),g[1].reshape(-1,1),axis=1)
Run Code Online (Sandbox Code Playgroud)
产生结果:
array([[0, 0],
[1, 0],
[0, 1],
[1, 1]])
Run Code Online (Sandbox Code Playgroud)
我的问题是双重的:
我们怎样才能获得seaborn FacetGrid热图的传说?该.add_legend()方法对我不起作用.
使用上一个问题中的代码:
import pandas as pd
import numpy as np
import itertools
import seaborn as sns
print("seaborn version {}".format(sns.__version__))
# R expand.grid() function in Python
# https://stackoverflow.com/a/12131385/1135316
def expandgrid(*itrs):
product = list(itertools.product(*itrs))
return {'Var{}'.format(i+1):[x[i] for x in product] for i in range(len(itrs))}
methods=['method 1', 'method2', 'method 3', 'method 4']
times = range(0,100,10)
data = pd.DataFrame(expandgrid(methods, times, times))
data.columns = ['method', 'dtsi','rtsi']
data['nw_score'] = np.random.sample(data.shape[0])
def facet(data,color):
data = data.pivot(index="dtsi", columns='rtsi', values='nw_score')
g = sns.heatmap(data, …Run Code Online (Sandbox Code Playgroud) 注意:这是与“ 如何使用seaborn FacetGrid更改字体大小? ” 不同的问题。在构面网格内使用热图时,此处建议的方法不起作用。
在构面网格内绘制热图时,如何更改构面标题的字体大小?
尝试下面的代码两种方法,传递fontsize=到set_titles()并在绘图背景下包裹了整个事情。据我所知,尽管字体重量确实发生了变化,但在使用热图时,似乎都没有影响面标题。使用热图时,是否还有其他选项可以控制构面标题?
import pandas as pd
import numpy as np
import itertools
import seaborn as sns
print("seaborn version {}".format(sns.__version__))
# R expand.grid() function in Python
# /sf/answers/849196981/
def expandgrid(*itrs):
product = list(itertools.product(*itrs))
return {'Var{}'.format(i+1):[x[i] for x in product] for i in range(len(itrs))}
methods=['method 1', 'method2', 'method 3', 'method 4']
times = range(0,100,10)
data = pd.DataFrame(expandgrid(methods, times, times))
data.columns = ['method', 'dtsi','rtsi']
data['nw_score'] = np.random.sample(data.shape[0])
def facet(data,color):
data = data.pivot(index="dtsi", columns='rtsi', values='nw_score') …Run Code Online (Sandbox Code Playgroud)