我有一个带有250.000行但140列的数据框架,我正在尝试构建配对图.变量. 我知道子图的数量很大,以及进行地块所需的时间. (我在带有3,4 GHz和32 GB RAM的i5上等待一个多小时). 记得Scikit Learn允许并行构造随机森林,我正在检查Seaborn是否也可以使用. 但是,我什么都没找到.源代码似乎调用了每个图像的matplotlib图函数. 这不能并行吗?如果是,什么是从这里开始的好方法? 解决方案 而不是并行化,您可以将DataFrame示为DataFrame,如果确实发生了速度瓶颈,则可以快速窥视1000行.通常,1000点足以对正在发生的事情有一个一般的了解. 即. sns.pairplot(df.sample(1000)). 其他解决方案 对我来说,由于数据差异,直方图花费很长时间的情况.我只有1200行和4列,但是花了半小时才放弃.我认为它是如此分布和无序,以至于直方图不断更新.一个解决方法可能是使用bin参数,但我的
以下是关于 seaborn 的编程技术问答
是否有一种方法可以在海洋热图中孵化特定的"细胞",例如完整填充条件? 我已经用蒙版阵列和matplotlib pcolor尝试了它,但事实证明它孵化了错误的单元格. import numpy as np import seaborn as sns import matplotlib.pyplot as plt flights = sns.load_dataset("flights") flights = flights.pivot("month", "year", "passengers") zm = np.ma.masked_less(flights.values, 200) x= np.arange(0,12) y= np.arange(0,12) sns.heatmap(flights,linewidth=.1) plt.pcolor(x, y, zm, hatch='//', alpha=0.) plt.show() 解决方案 我认为想法/策略是正确的.您只是没有
i具有以下数据集(仅显示示例): 我想找到每个区域最有影响力的运动,然后通过Seaborn Barplot绘制它. 我使用以下代码进行. # Create Dataset Using Only Area, Exercise and Impact Level Chategories CA_data = Data[['area', 'exercise', 'impact level']] # Compute Mean Impact Level per Exercise per Area mean_il_CA = CA_data.groupby(['area', 'exercise'])['impact level'].mean().reset_index() mean_il_CA_hello = mean_il_CA.groupby('area')['impact level'].max().reset_index() # Plot
我有这样的数据: Group yq Value1 Value2 G 2014Q1 0.07 1.1 G 2014Q2 0.06 1.09 G 2014Q3 0.09 1.11 G 2014Q4 0.04 1.13 I 2014Q1 0.10 1.2 I 2014Q2 0.13 1.25 I 2014Q3 0.15 1.23 I 2014Q4 0.18 1.4 我想在一个图中绘制线和条形图. 我尝试先绘制栏,但它输出了两个图(2组,G和I): import matplotlib.pyplot as plt ax = dataset.groupby('Group')[['yq', '
i并创建一个热图,该热图将在X轴上有一年,并且在整个Y轴上都有一个月.在热图中,将为%返回.这是我所追求的. 所以我有一些数据,然后将它们变成pct_change()系列. import pandas_datareader.data as web import pandas as pd from datetime import datetime as dt import numpy as np import seaborn as sns start = dt(year = 2000, month = 1, day = 1) df = web.DataReader('GDP', 'fred', start = '2000') df.pct_change() df.tail() 所以这是我们正在与之合作的.重要的是要注意索引是DateTime对象. GDP DATE 2016-10-01 18905.545 2017-01-01 19057.70
让我们假设我有一个数据框,我正在查看它的2列(2系). 使用以下列之一 - "no_employees" - 有人可以帮助我弄清楚如何创建6个不同的饼图或条形图(每个no_employees的每个分组1),以说明该值计数的值是是/否值在治疗栏中?我会使用matplotlib或seaborn,无论您认为最简单. 我正在使用附件的代码线来生成下面的代码. dataframe_title.groupby(['no_employees']).treatment.value_counts(). 但是现在我被困了.我使用seaborn吗? .plot?这似乎应该很容易,而且我知道在某些情况下可以做subplots=True,但我真的很困惑.非常感谢. no_employees treatment 1-5 Yes 88 No 71 100-500 Yes
使用 seaborn ,是否有一种方法可以包含多个变量(列)的 hue 参数?提出这个问题的另一种方法是,在将数据绘制到单个x,y轴图之前,我该如何按多个变量进行分组? 我想做下面的事情.但是目前,我无法为 hue 参数指定两个变量. sns.relplot(x='#', y='Attack', hue=['Legendary', 'Stage'], data=df) 例如,假设我有一个pandas dataframe,如以下类似于包含a 宠物小精灵数据库通过这个教程. 我想在x轴上绘制 pokedex#和y轴攻击.但是,我想通过阶段和传奇将数据分组.使用 matplotlib ,我编写了一个自定义函数,该功能将 ['Legendary','stage']] 分组,然后通过每个组迭代以进行绘图(请参见下面的结果).尽管我的自定义功能按预期工作,但我希望Seaborn可以简单地实现这一点.我猜想,必须有其他人试图在使用Seaborn的单个剧情中可视化3个以上的变量?
我们正在尝试创建一个饼图,以及以下代码中的条形图.谁能帮忙?我们做错了什么? 提供的任何帮助将不胜感激.谢谢. browser = ({'IE': [0.21], 'Chrome': [0.51], 'Firefox': [0.18], 'Safari': [0.06], 'Others': [0.04]}) x = pd.Series(browser) y = pd.Series.sort_values(x) z = pd.DataFrame(y) fig, axes = plt.subplots(nrows=1, ncols=2) z.plot(kind = 'pie', ax = axes[0,0]) z.plot(kind = 'bar', ax - axes[0,1]) 解决方案 您的代码中有几个错误.请参阅下面的评论代码,以了解如何绘制饼图. import pandas as pd import matplotlib.pyplot as plt #
我有此代码可以从数据框架中创建一个来自数据的群: df = pd.DataFrame({"Refined__Some_ID":some_id_list, "Refined_Age":age_list, "Name":name_list } ) #Creating dataframe with strings from the lists select = df.apply(lambda row : any([isinstance(e, str) for e in row ]),axis=1) #Exlcluding data from select in a new dataframe dfAnalysis = df[~select] dfAnalysis['Re
我希望在Countplot图中显示bar的实际计数值. 当我输入时 sns.countplot(x=df["Party"]) 我得到了一个输出 我只是想在每个栏上方显示实际值. 解决方案 我不知道您正在使用什么数据集,所以我要使用一个假设的数据集,但这应该起作用. import seaborn as sns import pandas as pd df = pd.read_csv(my_path_to_csv) # hypothetical csv file ax = sns.barplot(x='x', y='y', data=df) # barplot usage # the actual part that adds labels for i in ax.containers: ax.bar_labels(i,) 其他解决方案 尝试Uisng matplotlib.plotlib.pleplot.bar_labar_label _labe
海洋小号的y值与我的数据显示的不同. 我的数据显示: yearmonth 2018-10 763308.0 2018-11 708366.0 2018-12 703952.0 2019-01 844039.0 2019-02 749583.0 2019-03 826114.0 2019-04 951304.0 2019-05 1042708.0 2019-06 1043556.0 2019-07 1201030.0 2019-08 1065393.0 2019-09 881391.0 Freq: M, Name: csp_workload, dtype: float64 情节代码是: plt.figure(figsize=(15,5)) sns.barplot(x="yearmonth", y="workload", data = df_all, ci=0) plt.tight_
以下数据帧包含一年中每小时的值(kWh). cons2016.head() Date Hour kWh Month Weekday 0 2016-01-01 00:00 71.48 January Friday 1 2016-01-01 01:00 65.32 January Friday 2 2016-01-01 02:00 65.38 January Friday 3 2016-01-01 03:00 62.44 January Friday 4 2016-01-01 04:00 57.56 January Friday 我想从该数据框架中创建一个海洋热图( perstydays in 正确垂直轴上的顺序和水平轴上的小时).所以我分组: weekdayhour = cons2016.groupby(["Weekday", "Hour"]).mean() we
我想我的问题非常具体,但是我似乎找不到适当的解决方案,并且对我收到的错误输出毫无头绪. 无论如何,我有一个从SQLITE数据库加载的pandas数据框. data_frame = pd.read_sql_query( "SELECT (total_comb + total_comb_rc) as total_comb, p_val, w_length from {tn}".format( tn=table_name), conn) 随着加载,我将数据按" w_length"值分组. for i, group in data_frame.groupby('w_length'): 现在,我想为用Seaborn Lmplot创建的每个组绘制一个散点图. for i, group in data_frame.groupby('w_length'): sns.lmplot(x=group['total_comb'], y=group['p_val'],
我正在分析一些包含一周中每一天的列的调查数据.列中只能有两个值,如果受访者在当天确实有效,则只能有两个值,如果不这样做,则只能有0个值.我希望能够在一周中的每一天都有计数情节.但是,当我运行下面的代码时,前七个子图为空白,第八个子图显示了计数图.如果星期一,X轴被标记为星期日,则最后一块地块的标题. f, ax = plt.subplots(nrows = 4, ncols = 2, figsize=(12,18)) work_days = df[['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']] row = 0 col = 0 for i in work_days: g = sns.countplot(x=i,data=work_days) g.set(title = column) col += 1 if col == 2: col =
我如何轻松地比较多个队列的分布? 通常,它被创建为: SELECT age, gender, compress_distributionUDF(collect_list(struct(target_y_n, count, distribution_value))) GROUP BY age, gender 其中compress_distributionUDF只需列出一个元组列表并返回每组计数. 这给我留下了 的列表 Row(distribution_value=60.0, count=314251, target_y_n=0) 嵌套在pandas.Series内,但每个chohort都一个. 基本上,它类似于: pd.DataFrame({'foo':[1,2], 'bar':['first', 'second'], 'baz':[{'target_y_n': 0, 'value': 0.5, 'count':1000},{'target_y_n
在如何在pandas中绘制图形计数表/a>我问如何从输入数据中绘制热图,例如: customer1,customer2 a,b a,c a,c b,a b,c b,c c,c a,a b,c b,c 答案是 x = df.pivot_table(index='customer1',columns='customer2',aggfunc='size',fill_value=0) idx = x.max(axis=1).sort_values(ascending=0).index sns.heatmap(x[idx].reindex(idx), annot=True) 这给出了一个方形矩阵,显示了两个列中每对计数的数量. 如果第一列中的项目在第二列中没有出现,则该解决方案不起作用.例如: a,b a,c c,b 给出一个错误,说[u,'a']不在索引中. 有一个简单的解决方案吗? 解决方案 尝试以下方法: In [129]: df Ou
如何使用seaborn绘制此数据框架以显示每个模型的KPI? allFrame = pd.DataFrame({'modelName':['first','second', 'third'], 'kpi_1':[1,2,3], 'kpi_2':[2,4,3]}) 不喜欢sns.barplot(x="kpi2", y="kpi1", hue="modelName", data=allFrame) 而是像这样的kpi 解决方案 尝试melt首先使用dataframe,然后您可以使用seaborn绘制绘图: import pandas as pd import seaborn as sns allFrame = pd.DataFrame({'modelName':['first','second', 'third'],
我使用以下代码在Excel文件中读取并使用Seaborn软件包绘制Boxplot. import scipy.stats as sps import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns from openpyxl import load_workbook sns.set() inpath=r"P:\Data.xlsx" df=pd.read_excel(io=inpath,header=0,sheetname="65051045") df1=df[df["Gel.Menge"]!=0]["Gel.Menge"] print(df1) fig2=plt.figure(figsize=(15,10)) sns.boxplot(data=df1) sns.swarmplot(data=df1,color="black",alpha=0.5) pl
我正在使用Seaborn中的Heatmap遇到一些问题 代码: df[['latitude', 'longitude', 'interest_level']] a = df.pivot('latitude', 'longitude', 'interest_level') 错误: ValueError: Index contains duplicate entries, cannot reshape 兴趣水平具有多个重复值.我要设想的是,LAT/Long会形成2D图,其中兴趣级别是地图中的值.兴趣水平仅为3个唯一值. 我正在使用错误的班级,因为我正在关注Seaborn Heatmap教程 解决方案 您需要#subset for pivot_table or groupby solution is not necessary, you can omit it #df = df[['latitude', 'longitude', 'interest_level
我正在尝试从类似的数据框架制作一系列线图 import pandas as pd import numpy as np import matplotlib.pyplot as plt df = pd.DataFrame({ 'CITY' : np.random.choice(['PHOENIX','ATLANTA','CHICAGO', 'MIAMI', 'DENVER'], 10000), 'DAY': np.random.choice(['Monday','Tuesday','Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'], 10000), 'TIME_BIN': np.random.randint(1, 86400, size=10000), 'COUNT': np.random.randin