当前位置: 首页 > news >正文

洛阳网站建设公司移动互联网应用程序备案

洛阳网站建设公司,移动互联网应用程序备案,公司网站建设的会计分录,wordpress模板 多梦目录 一、 数据分析有关的python库简介 (一)numpy (二)pandas (三)matplotlib (四)scipy (五)statsmodels (六)scikit-learn 二、 数据的导入和导出 三、 数据筛选 四、 数据描述 五、 数据处理 六、 统计分析 七、 可视化 八、 其它![](https://… 目录 一、 数据分析有关的python库简介 (一)numpy (二)pandas (三)matplotlib (四)scipy (五)statsmodels (六)scikit-learn 二、 数据的导入和导出 三、 数据筛选 四、 数据描述 五、 数据处理 六、 统计分析 七、 可视化 八、 其它![](https://images2015.cnblogs.com/blog/911998/201603/911998-20160313205633319-924258473.png)1.NumpyNumpy是python科学计算的基础包它提供以下功能不限于此(1)快速高效的多维数组对象ndarray     (2)用于对数组执行元素级计算以及直接对数组执行数学运算的函数(3)用于读写硬盘上基于数组的数据集的工具(4)线性代数运算、傅里叶变换以及随机数生成(5)用于将C、C、Fortran代码集成到python的工具2.pandaspandas提供了使我们能够快速便捷地处理结构化数据的大量数据结构和函数。pandas兼具Numpy高性能的数组计算功能以及电子表格和关系型数据如SQL灵活的数据处理能力。它提供了复杂精细的索引功能以便更为便捷地完成重塑、切片和切块、聚合以及选取数据子集等操作。对于金融行业的用户pandas提供了大量适用于金融数据的高性能时间序列功能和工具。DataFrame是pandas的一个对象它是一个面向列的二维表结构且含有行标和列标。ps.引用一段网上的话说明DataFrame的强大之处Excel 2007及其以后的版本的最大行数是1048576最大列数是16384超过这个规模的数据Excel就会弹出个框框“此文本包含多行文本无法放置在一个工作表中”。Pandas处理上千万的数据是易如反掌的事情同时随后我们也将看到它比SQL有更强的表达能力可以做很多复杂的操作要写的code也更少。 说了一大堆它的好处要实际感触还得动手码代码。3.matplotlibmatplotlib是最流行的用于绘制数据图表的python库。4.ScipyScipy是一组专门解决科学计算中各种标准问题域的包的集合。 5.statsmodels https://github.com/statsmodels/statsmodels 6.scikit-learn http://scikit-learn.org/stable/一.数据导入和导出 一读取csv文件1.本地读取import pandas as pd df \ pd.read\_csv(E:\\\\tips.csv) #根据自己数据文件保存的路径填写(p.s. python填写路径时要么使用/要么使用\\\\) #输出total\_bill tip sex smoker day time size 0 16.99 1.01 Female No Sun Dinner 2 1 10.34 1.66 Male No Sun Dinner 3 2 21.01 3.50 Male No Sun Dinner 3 3 23.68 3.31 Male No Sun Dinner 2 4 24.59 3.61 Female No Sun Dinner 4 5 25.29 4.71 Male No Sun Dinner 4 .. ... ... ... ... ... ... ... 240 27.18 2.00 Female Yes Sat Dinner 2 241 22.67 2.00 Male Yes Sat Dinner 2 242 17.82 1.75 Male No Sat Dinner 2 243 18.78 3.00 Female No Thur Dinner 2 \[244 rows x 7 columns\]2.网络读取import pandas as pd data\_url \ https://raw.githubusercontent.com/mwaskom/seaborn-data/master/tips.csv #填写url读取 df pd.read\_csv(data\_url) #输出同上为了节省篇幅这儿就不粘贴了3.read\_csv详解功能 Read CSV (comma-separated) file into DataFrameread\_csv(filepath\_or\_buffer, sep,, dialectNone, compressioninfer, doublequoteTrue, escapecharNone, quotechar, quoting0, skipinitialspaceFalse, lineterminatorNone, headerinfer, index\_colNone, namesNone, prefixNone, skiprowsNone, skipfooterNone, skip\_footer0, na\_valuesNone, true\_valuesNone, false\_valuesNone, delimiterNone, convertersNone, dtypeNone, usecolsNone, engineNone, delim\_whitespaceFalse, as\_recarrayFalse, na\_filterTrue, compact\_intsFalse, use\_unsignedFalse, low\_memoryTrue, buffer\_linesNone, warn\_bad\_linesTrue, error\_bad\_linesTrue, keep\_default\_naTrue, thousandsNone, commentNone, decimal., parse\_datesFalse, keep\_date\_colFalse, dayfirstFalse, date\_parserNone, memory\_mapFalse, float\_precisionNone, nrowsNone, iteratorFalse, chunksizeNone, verboseFalse, encodingNone, squeezeFalse, mangle\_dupe\_colsTrue, tupleize\_colsFalse, infer\_datetime\_formatFalse, skip\_blank\_linesTrue)参数详解 http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read\_csv.html(二)读取Mysql数据假设数据库安装在本地用户名为myusername,密码为mypassword,要读取mydb数据库中的数据import pandas as pd import MySQLdb mysql\_cn\ MySQLdb.connect(hostlocalhost, port3306,usermyusername, passwdmypassword, dbmydb) df \ pd.read\_sql(select \* from test;, conmysql\_cn) mysql\_cn.close()上面的代码读取了test表中所有的数据到df中而df的数据结构为Dataframe。 ps.MySQL教程:http://www.runoob.com/mysql/mysql-tutorial.html (三)读取excel文件 要读取excel文件还需要安装xlrd模块pip install xlrd即可。df pd.read\_excel(E:\\\\tips.xls)(四)数据导出到csv文件df.to\_csv(E:\\\\demo.csv, encodingutf-8, indexFalse) #indexFalse表示导出时去掉行名称如果数据中含有中文一般encoding指定为‘utf-8’(五)读写SQL数据库 import pandas as pd import sqlite3 con \ sqlite3.connect(...) sql \ ... df\pd.read\_sql(sql,con)#help文件 help(sqlite3.connect) #输出 Help on built-in function connect in module \_sqlite3:connect(...)connect(database\[, timeout, isolation\_level, detect\_types, factory\])Opens a connection to the SQLite database file \*database\*. You can use:memory: to open a database connection to a database that resides inRAM instead of on disk. ############# help(pd.read\_sql) #输出 Help on function read\_sql in module pandas.io.sql:read\_sql(sql, con, index\_col\None, coerce\_floatTrue, paramsNone, parse\_datesNone, columnsNone, chunksizeNone)Read SQL query or database table into a DataFrame.ps.数据库的代码是我直接从网络上粘贴过来的没有测试过是不是可行先贴上来。 数据库我还在摸索中学习心得学习笔记之类的大家可以一起分享23333~二.提取和筛选需要的数据 一提取和查看相应数据 用的是tips.csv的数据数据来源https://github.com/mwaskom/seaborn-dataprint df.head() #打印数据前五行 #输出total\_bill tip sex smoker day time size 0 16.99 1.01 Female No Sun Dinner 2 1 10.34 1.66 Male No Sun Dinner 3 2 21.01 3.50 Male No Sun Dinner 3 3 23.68 3.31 Male No Sun Dinner 2 4 24.59 3.61 Female No Sun Dinner 4print df.tail() #打印数据后5行 #输出total\_bill tip sex smoker day time size 239 29.03 5.92 Male No Sat Dinner 3 240 27.18 2.00 Female Yes Sat Dinner 2 241 22.67 2.00 Male Yes Sat Dinner 2 242 17.82 1.75 Male No Sat Dinner 2 243 18.78 3.00 Female No Thur Dinner 2print df.columns #打印列名 #输出 Index(\[utotal\_bill, utip, usex, usmoker, uday, utime, usize\], dtypeobject)print df.index #打印行名 #输出 Int64Index(\[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,...234, 235, 236, 237, 238, 239, 240, 241, 242, 243\],dtype\int64, length244)print df.ix\[10:20, 0:3\] #打印10~20行前三列数据 #输出total\_bill tip sex 10 10.27 1.71 Male 11 35.26 5.00 Female 12 15.42 1.57 Male 13 18.43 3.00 Male 14 14.83 3.02 Female 15 21.58 3.92 Male 16 10.33 1.67 Female 17 16.29 3.71 Male 18 16.97 3.50 Female 19 20.65 3.35 Male 20 17.92 4.08 Male#提取不连续行和列的数据这个例子提取的是第1,3,5行第2,4列的数据 df.iloc\[\[1,3,5\],\[2,4\]\] #输出sex day 1 Male Sun 3 Male Sun 5 Male Sun#专门提取某一个数据这个例子提取的是第三行第二列数据默认从0开始算哈 df.iat\[3,2\] #输出 Maleprint df.drop(df.columns\[1, 2\], axis 1) #舍弃数据前两列 print df.drop(df.columns\[\[1, 2\]\], axis 0) #舍弃数据前两行 #为了节省篇幅结果就不贴出来了哈~print df.shape #打印维度 #输出 (244, 7)df.iloc\[3\] #选取第3行 #输出1 total\_bill 23.68 tip 3.31 sex Male smoker No day Sun time Dinner size 2 Name: 3, dtype: objectdf.iloc\[2:4\] #选取第2到第3行 #输出2total\_bill tip sex smoker day time size 2 21.01 3.50 Male No Sun Dinner 3 3 23.68 3.31 Male No Sun Dinner 2df.iloc\[0,1\] #选取第0行1列的元素 #输出3 1.01(二)筛选出需要的数据用的是tips.csv的数据数据来源https://github.com/mwaskom/seaborn-data#example:假设我们要筛选出小费大于$8的数据 df\[df.tip8\] #输出total\_bill tip sex smoker day time size 170 50.81 10 Male Yes Sat Dinner 3 212 48.33 9 Male No Sat Dinner 4#数据筛选同样可以用”或“和”且“作为筛选条件比如 #1 df\[(df.tip7)|(df.total\_bill50)\] #筛选出小费大于$7或总账单大于$50的数据 #输出total\_bill tip sex smoker day time size 23 39.42 7.58 Male No Sat Dinner 4 170 50.81 10.00 Male Yes Sat Dinner 3 212 48.33 9.00 Male No Sat Dinner 4#2 df\[(df.tip7)(df.total\_bill50)\]#筛选出小费大于$7且总账单大于$50的数据 #输出total\_bill tip sex smoker day time size 170 50.81 10 Male Yes Sat Dinner 3#接上 #假如加入了筛选条件后我们只关心day和time df\[\[day,time\]\]\[(df.tip7)|(df.total\_bill50)\] #输出day time 23 Sat Dinner 170 Sat Dinner 212 Sat Dinner三.统计描述用的是tips.csv的数据数据来源https://github.com/mwaskom/seaborn-dataprint df.describe() #描述性统计 #输出 各指标都比较简单就不解释了哈total\_bill tip size count 244.000000 244.000000 244.000000 mean 19.785943 2.998279 2.569672 std 8.902412 1.383638 0.951100 min 3.070000 1.000000 1.000000 25% 13.347500 2.000000 2.000000 50% 17.795000 2.900000 2.000000 75% 24.127500 3.562500 3.000000 max 50.810000 10.000000 6.000000四.数据处理 (一)数据转置用的是tips.csv的数据数据来源https://github.com/mwaskom/seaborn-dataprint df.T #output0 1 2 3 4 5 6 7 \\ total\_bill 16.99 10.34 21.01 23.68 24.59 25.29 8.77 26.88 tip 1.01 1.66 3.5 3.31 3.61 4.71 2 3.12 sex Female Male Male Male Female Male Male Male smoker No No No No No No No No day Sun Sun Sun Sun Sun Sun Sun Sun time Dinner Dinner Dinner Dinner Dinner Dinner Dinner Dinner size 2 3 3 2 4 4 2 4 8 9 ... 234 235 236 237 238 \\ total\_bill 15.04 14.78 ... 15.53 10.07 12.6 32.83 35.83 tip 1.96 3.23 ... 3 1.25 1 1.17 4.67 sex Male Male ... Male Male Male Male Female smoker No No ... Yes No Yes Yes No day Sun Sun ... Sat Sat Sat Sat Sat time Dinner Dinner ... Dinner Dinner Dinner Dinner Dinner size 2 2 ... 2 2 2 2 3 239 240 241 242 243 total\_bill 29.03 27.18 22.67 17.82 18.78 tip 5.92 2 2 1.75 3 sex Male Female Male Male Female smoker No Yes Yes No No day Sat Sat Sat Sat Thur time Dinner Dinner Dinner Dinner Dinner size 3 2 2 2 2 \[7 rows x 244 columns\](二)数据排序用的是tips.csv的数据数据来源https://github.com/mwaskom/seaborn-data df.sort\_values(bytip) #按tip列升序排序 #输出为了不占篇幅我简化了一部分total\_bill tip sex smoker day time size 67 3.07 1.00 Female Yes Sat Dinner 1 236 12.60 1.00 Male Yes Sat Dinner 2 92 5.75 1.00 Female Yes Fri Dinner 2 111 7.25 1.00 Female No Sat Dinner 1 0 16.99 1.01 Female No Sun Dinner 2 .. ... ... ... ... ... ... ... 214 28.17 6.50 Female Yes Sat Dinner 3 141 34.30 6.70 Male No Thur Lunch 6 59 48.27 6.73 Male No Sat Dinner 4 23 39.42 7.58 Male No Sat Dinner 4 212 48.33 9.00 Male No Sat Dinner 4 170 50.81 10.00 Male Yes Sat Dinner 3\[244 rows x 7 columns\](三)缺失值处理 1.填充缺失值(数据来自《利用python进行数据分析》第二章 usagov\_bitly\_data2012-03-16-1331923249.txt需要的同学可以找我要) import json #python有许多内置或第三方模块可以将JSON字符串转换成python字典对象 import pandas as pd import numpy as np from pandas import DataFrame path \ F:\\PycharmProjects\\pydata-book-master\\ch02\\usagov\_bitly\_data2012-03-16-1331923249.txt #根据自己的路径填写 records \[json.loads(line) for line in open(path)\] frame \ DataFrame(records) frame\[tz\]#输出为了节省篇幅我删除了部分输出结果 0 America/New\_York 1 America/Denver 2 America/New\_York 3 America/Sao\_Paulo 4 America/New\_York 5 America/New\_York 6 Europe/Warsaw 7 8 9 10 America/Los\_Angeles 11 America/New\_York 12 America/New\_York 13 NaN... Name: tz, dtype: object从以上输出值可以看出数据存在未知或缺失值接着咱们来处理缺失值。 print frame\[tz\].fillna(1111111111111) #以数字代替缺失值 #输出结果为了节省篇幅我删除了部分输出结果 0 America/New\_York 1 America/Denver 2 America/New\_York 3 America/Sao\_Paulo 4 America/New\_York 5 America/New\_York 6 Europe/Warsaw 7 8 9 10 America/Los\_Angeles 11 America/New\_York 12 America/New\_York 13 1111111111111 Name: tz, dtype: objectprint frame\[tz\].fillna(YuJie2333333333333) #用字符串代替缺失值 #输出为了节省篇幅我删除了部分输出结果 0 America/New\_York 1 America/Denver 2 America/New\_York 3 America/Sao\_Paulo 4 America/New\_York 5 America/New\_York 6 Europe/Warsaw 7 8 9 10 America/Los\_Angeles 11 America/New\_York 12 America/New\_York 13 YuJie2333333333333 Name: tz, dtype: object还有 print frame\[tz\].fillna(methodpad) #用前一个数据代替缺失值 print frame\[tz\].fillna(methodbfill) #用后一个数据代替缺失值2.删除缺失值 数据同上 print frame\[tz\].dropna(axis0) #删除缺失行 print frame\[tz\].dropna(axis1) #删除缺失列3.插值法填补缺失值 由于没有数据这儿插播一个小知识点创建一个随机的数据框 import pandas as pd import numpy as np #创建一个6\*4的数据框randn函数用于创建随机数 czf\_data pd.DataFrame(np.random.randn(6,4),columnslist(ABCD)) czf\_data #输出A B C D 0 0.355690 1.165004 0.810392 -0.818982 1 0.496757 -0.490954 -0.407960 -0.493502 2 -0.202123 -0.842278 -0.948464 0.223771 3 0.969445 1.357910 -0.479598 -1.199428 4 0.125290 0.943056 -0.082404 -0.363640 5 -1.762905 -1.471447 0.351570 -1.546152好啦数据就出来了。接着我们用空值替换数值创造出一个含有空值的DataFrame。 #把第二列数据设置为缺失值 czf\_data.ix\[2,:\]np.nan czf\_data #输出A B C D 0 0.355690 1.165004 0.810392 -0.818982 1 0.496757 -0.490954 -0.407960 -0.493502 2 NaN NaN NaN NaN 3 0.969445 1.357910 -0.479598 -1.199428 4 0.125290 0.943056 -0.082404 -0.363640 5 -1.762905 -1.471447 0.351570 -1.546152#接着就可以利用插值法填补空缺值了~ print czf\_data.interpolate() #输出A B C D 0 0.355690 1.165004 0.810392 -0.818982 1 0.496757 -0.490954 -0.407960 -0.493502 2 0.733101 0.433478 -0.443779 -0.846465 3 0.969445 1.357910 -0.479598 -1.199428 4 0.125290 0.943056 -0.082404 -0.363640 5 -1.762905 -1.471447 0.351570 -1.546152(四)数据分组用的是tips.csv的数据数据来源https://github.com/mwaskom/seaborn-data group df.groupby(day) #按day这一列进行分组 #1 print group.first()#打印每一组的第一行数据 #输出total\_bill tip sex smoker time size day Fri 28.97 3.00 Male Yes Dinner 2 Sat 20.65 3.35 Male No Dinner 3 Sun 16.99 1.01 Female No Dinner 2 Thur 27.20 4.00 Male No Lunch 4 #2 print group.last()#打印每一组的最后一行数据 #输出total\_bill tip sex smoker time size day Fri 10.09 2.00 Female Yes Lunch 2 Sat 17.82 1.75 Male No Dinner 2 Sun 15.69 1.50 Male Yes Dinner 2 Thur 18.78 3.00 Female No Dinner 2(五)值替换 import pandas as pd import numpy as np #首先创造一个Series没有数据情况下的福音233 Series pd.Series(\[0,1,2,3,4,5\]) #输出 Series 0 0 1 1 2 2 3 3 4 4 5 5 dtype: int64#数值替换例如将0换成10000000000000 print Series.replace(0,10000000000000) #输出 0 10000000000000 1 1 2 2 3 3 4 4 5 5 dtype: int64#列和列的替换同理 print Series.replace(\[0,1,2,3,4,5\]\[11111,222222,3333333,44444,55555,666666\]) #输出 0 11111 1 222222 2 3333333 3 44444 4 55555 5 666666 dtype: int64五.统计分析 (一)t检验 1.独立样本t检验 两独立样本t检验就是根据样本数据对两个样本来自的两独立总体的均值是否有显著差异进行推断进行两独立样本t检验的条件是两样本的总体相互独立且符合正态分布。 开始找不到合适的数据我就在网上随便摘抄了个spss做独立样本t检验的实例数据作为例子大家暂时看着吧找到合适的例子再给大家举~ 数据如下我将数据保存为本地xlsx格式 group data 0 1 34 1 1 37 2 1 28 3 1 36 4 1 30 5 2 43 6 2 45 7 2 47 8 2 49 9 2 39import pandas as pd from scipy.stats import ttest\_ind IS\_t\_test \ pd.read\_excel(E:\\\\IS\_t\_test.xlsx) Group1 \ IS\_t\_test\[IS\_t\_test\[group\]1\]\[data\] Group2 \ IS\_t\_test\[IS\_t\_test\[group\]2\]\[data\] print ttest\_ind(Group1,Group2)#输出 (-4.7515451390104353, 0.0014423819408438474) 输出结果的第一个元素为t值第二个元素为p-value ttest_ind默认两组数据方差齐性的如果想要设置默认方差不齐可以设置equal_varFalse print ttest\_ind(Group1,Group2,equal\_varTrue) print ttest\_ind(Group1,Group2,equal\_varFalse) #输出 (-4.7515451390104353, 0.0014423819408438474) (\-4.7515451390104353, 0.0014425608643614844)2.配对样本t检验 同样找不到数据让我们暂且假设上边独立样本是配对样本吧使用同样的数据。 import pandas as pd from scipy.stats import ttest\_rel IS\_t\_test \ pd.read\_excel(E:\\\\IS\_t\_test.xlsx) Group1 \ IS\_t\_test\[IS\_t\_test\[group\]1\]\[data\] Group2 \ IS\_t\_test\[IS\_t\_test\[group\]2\]\[data\] print ttest\_rel(Group1,Group2)#输出 (-5.6873679190073361, 0.00471961872448184)同样的输出结果的第一个元素为t值第二个元素为p-value。 (二)方差分析 1.单因素方差分析 这里依然沿用t检验的数据 import pandas as pd from scipy import stats IS\_t\_test \ pd.read\_excel(E:\\\\IS\_t\_test.xlsx) Group1 \ IS\_t\_test\[IS\_t\_test\[group\]1\]\[data\] Group2 \ IS\_t\_test\[IS\_t\_test\[group\]2\]\[data\] w,p \ stats.levene(\*args) #levene方差齐性检验。levene(\*args, \*\*kwds) Perform Levene test for equal variances.如果p0.05则方差不齐 print w,p #进行方差分析 f,p stats.f\_oneway(\*args) print f,p#输出 (0.019607843137254936, 0.89209916055865535) 22.5771812081 0.001442381940842.多因素方差分析 数据是我从网上找的多因素方差分析的一个例子研究区组和营养素对体重的影响。我做成了excel文件需要的同学可以问我要哈~做多因素方差分析需要加载statsmodels模块如果电脑没有安装可以pip install一下。#数据导入 import pandas as pd MANOVA\pd.read\_excel(E:\\\\MANOVA.xlsx) MANOVA #输出为了节省篇幅删掉了中间部分的输出结果 id nutrient weight 0 1 1 50.1 1 2 1 47.8 2 3 1 53.1 3 4 1 63.5 4 5 1 71.2 5 6 1 41.4 ....................... 21 6 3 38.5 22 7 3 51.2 23 8 3 46.2#多因素方差分析 from statsmodels.formula.api import ols from statsmodels.stats.anova import anova\_lm formula \ weight~C(id)C(nutrient)C(id):C(nutrient) anova\_results \ anova\_lm(ols(formula,MANOVA).fit()) print anova\_results #outputdf sum\_sq mean\_sq F PR(F) C(id) 7 2.373613e03 339.087619 0 NaN C(nutrient) 2 1.456133e02 72.806667 0 NaN C(id):C(nutrient) 14 3.391667e02 24.226190 0 NaN Residual 0 8.077936e-27 inf NaN NaN也许数据选得不对p-value全是空值23333待我找个好点儿的数据再做一次多因素方差分析。 3.重复测量设计的方差分析单因素 ********待完善 重复测量设计是对同一因变量进行重复测度重复测量设计的方差分析可以是同一条件下进行的重复测度也可以是不同条件下的重复测量。 代码和多因素方差分析一样思路不一样而已~但我还找不到多因素方差分析合适的数据所以这儿就先不写了2333 4.混合设计的方差分析 ********待完善 #########统计学学得好的同学们教教我吧。。 (三)卡方检验 卡方检验就是统计样本的实际观测值与理论推断值之间的偏离程度实际观测值与理论推断值之间的偏离程度就决定卡方值的大小卡方值越大越不符合卡方值越小偏差越小越趋于符合若两个值完全相等时卡方值就为0表明理论值完全符合。from 百度百科2333 1.单因素卡方检验 数据源于网络男女化妆与不化妆人数的理论值与实际值。 import numpy as np from scipy import stats from scipy.stats import chisquare observed \ np.array(\[15,95\])#观测值110学生中化妆的女生95人化妆的男生15人 expected np.array(\[55,55\]) #理论值110学生中化妆的女生55人化妆的男生55人 chisquare(observed,expected) #output (58.18181818181818, 2.389775628860044e-14)2.多因素卡方检验*****正在研究中学会了完善这一块~ (四)计数统计用的数据为tips.csv #example统计性别 count df\[sex\].value\_counts() #输出 print count Male 157 Female 87 Name: sex, dtype: int64(五)回归分析 *****待学习 数据拟合广义线性回归。。。。等等 六.可视化 我觉得吧其实看着excel就可以实现的功能为何那么复杂excel确实够通用够便捷但是处理很大数据量的话也许吃不消吧。学学python绘图也不赖而且讲真有的成效真的挺好看的。 (一)Seaborn 我学数据分析可视化是从学习Seaborn入门的Seaborn是基于matplotlib的Python可视化库刚开始便接触matplotlib难免有些吃力参数多且难理解但是慢慢来总会学会的。还有关键的一点是seaborn画出来的图好好看。。#基础导入 import numpy as np import pandas as pd import seaborn as sns import matplotlib as mpl import matplotlib.pyplot as plt#小费数据真的挺好的这儿用tips作为example tips sns.load\_dataset(tips) #从网络环境导入数据tips 1.lmplot函数 lmplot(x, y, data, hueNone, colNone, rowNone, paletteNone, col_wrapNone, size5, aspect1, markers‘o’, sharexTrue, shareyTrue, hue_orderNone, col_orderNone, row_orderNone, legendTrue, legend_outTrue, x_estimatorNone, x_binsNone, x_ci‘ci’, scatterTrue, fit_regTrue, ci95, n_boot1000, unitsNone, order1, logisticFalse, lowessFalse, robustFalse, logxFalse, x_partialNone, y_partialNone, truncateFalse, x_jitterNone, y_jitterNone, scatter_kwsNone, line_kwsNone) 功能Plot data and regression model fits across a FacetGrid. 下面就不同的例子对lmplot的参数进行解释 例子1. 画出总账单和小费回归关系图 用到了lmplot(x, y, data,scatter_kws x,y,data一目了然这儿就不多解释了scatter_kws和line_kws的官方解释如下 {scatter,line}_kws : dictionarie Additional keyword arguments to pass to plt.scatter and plt.plot. scatter为点line为线。其实就是用字典去限定点和线的各种属性如例子所示散点的颜色为灰石色线条的颜色为印度红成像效果就是这样点线颜色分离展现效果很好。大家也可以换上自己想要的图片属性。 sns.lmplot(total\_bill, tip, tips,scatter\_kws{marker: ., color: slategray},line\_kws{linewidth: 1, color: indianred}).savefig(picture2) 另外颜色还可以使用RGB代码具体对照表可以参考这个网站可以自己搭配颜色 http://www.114la.com/other/rgb.htm marker也可以有多种样式具体如下 . Point marker , Pixel marker o Circle marker v Triangle down marker ^ Triangle up marker Triangle left marker Triangle right marker 1 Tripod down marker 2 Tripod up marker 3 Tripod left marker 4 Tripod right marker s Square marker p Pentagon marker * Star marker h Hexagon marker H Rotated hexagon D Diamond marker d Thin diamond marker | Vertical line (vlinesymbol) marker _ Horizontal line (hline symbol) marker Plus marker x Cross (x) marker sns.lmplot(total\_bill, tip, tips,scatter\_kws\{marker: .,color:#FF7F00},line\_kws\{linewidth: 1, color: #BF3EFF}).savefig(s1) ps.我修改maker属性不成功不知为何求解答例子2.用餐人数(size)和小费(tip)的关系图 官方解释 x_estimator : callable that maps vector - scalar, optional Apply this function to each unique value of x and plot the resulting estimate. This is useful when x is a discrete variable. If x_ci is not None, this estimate will be bootstrapped and a confidence interval will be drawn. 大概解释就是对拥有相同x水平的y值进行映射 plt.figure() sns.lmplot(size, tip, tips, x\_estimator np.mean).savefig(picture3){x,y}_jitter : floats, optional Add uniform random noise of this size to either the x or y variables. The noise is added to a copy of the data after fitting the regression, and only influences the look of the scatterplot. This can be helpful when plotting variables that take discrete values. jitter是个很有意思的参数, 特别是处理靶数据的overlapping过于严重的情况时, 通过增加一定程度的噪声(noise)实现数据的区隔化, 这样原始数据是若干 点簇 变成一系列密集邻近的点群. 另外, 有的人会经常将 rug 与 jitter 结合使用. 这依人吧.对于横轴取离散水平的时候, 用x_jitter可以让数据点发生水平的扰动.但扰动的幅度不宜过大。 sns.lmplot(size, tip, tips, x\_jitter.15).savefig(picture4)seaborn还可以做出xkcd风格的图片还挺有意思的 with plt.xkcd():sns.color\_palette(husl, 8)sns.set\_context(paper)sns.lmplot(x\total\_bill, ytip, datatips, ci65).savefig(picture1)with plt.xkcd():sns.lmplot(total\_bill, tip, datatips, hueday)plt.xlabel(hue day)plt.savefig(picture5)with plt.xkcd():sns.lmplot(total\_bill, tip, datatips, huesmoker)plt.xlabel(hue smoker)plt.savefig(picture6)sns.set\_style(dark) sns.set\_context(talk) sns.lmplot(size, total\_bill, tips, order2) plt.title(\# poly order 2) plt.savefig(picture7) plt.figure() sns.lmplot(size, total\_bill, tips, order3) plt.title(\# poly order 3) plt.savefig(picture8)sns.jointplot(total\_bill, tip, tips).savefig(picture9)需要更多学习籽料和项目实战源码请扫下方↓↓↓获取 如有侵权请联系删除。
http://www.w-s-a.com/news/463606/

相关文章:

  • 工程建设标准强制性条文最新版本网站关键词排名优化应该怎么做
  • 网站网页设计内容品牌高端网站建设公司
  • 网站开发报价 福州中国建筑网官网手机版
  • 网站 图片 自动往右移专门做定制化的网站
  • 最好用的cms手机百度关键词排名 网站优化软件
  • 凉山州城乡规划建设局网站长沙网站建设哪家强
  • 广州网站开发创意设计公司企业自己怎么制作网站首页
  • 曲靖 曲靖网站建设软件(app)开发wordpress 没有远程发布
  • 官方网站开发与定制网站建设技术是干嘛的
  • 昆明网站建设工作室网站菜单导航怎么做的
  • 南京网站做的好的公司猪八戒网站做推广怎么样
  • 建站收费标准福州网站搭建
  • 做防护用品的网站欧美网站建设风格特点
  • 龙华做网站联系电话北京软件开发培训班
  • 做网站运营有前途网站的建设与管理的心得体会
  • 河南网站推广怎么做网页制作免费下载
  • 网站如何屏蔽中国ip商丘网站建设的公司哪家好
  • 东莞广告公司东莞网站建设价格鹤壁哪有做网站的
  • 门户网站界面设计logo设计商标设计
  • 建设银行网站驱动宁波网站建设相信荣胜网络
  • 八里河网站建设项目建设可行性企业品牌推广方式有哪些
  • jsp网站开发之html入门知识广州服装设计公司
  • 做电商看的网站有哪些个人网页制作成品免费
  • 沈阳建站多少钱境外网站 备案
  • 提交网站收录入口斗图在线制作
  • 建设化妆品网站服务医药网站前置审批
  • 购物网站修改注册信息模块的分析怎么注册公司logo
  • 那个网站可以做域名跳转的青岛网站建设定制
  • 网站登记模板互联网技术发展及其影响的调查
  • 北京专业的网站建设西安企业家名单