人妻系列无码专区av在线,国内精品久久久久久婷婷,久草视频在线播放,精品国产线拍大陆久久尤物

當前位置:首頁 > 軟件開發(fā) > 正文

delimiter?delimiter諧音記憶

delimiter?delimiter諧音記憶

很多朋友對于delimiter和delimiter諧音記憶不太懂,今天就由小編來為大家分享,希望可以幫助到大家,下面一起來看看吧!Labview如何將字符串轉(zhuǎn)換字體沒有...

很多朋友對于delimiter和delimiter諧音記憶不太懂,今天就由小編來為大家分享,希望可以幫助到大家,下面一起來看看吧!

Labview如何將字符串轉(zhuǎn)換字體

沒有直接的,不想用for循環(huán)的話,你可以用兩個函數(shù)來完成這個功能,首先用arraytospreadsheetstring函數(shù),delimiter設(shè)置成\r\n,然后用searchandreplacestring,參數(shù)replaceall設(shè)置成true,將\r\n全部替換成空字符就可以了。

如何高效地使用Matplotlib

引言

對新手來說Python可視化實在有些令人挫敗。有很多不同的選項,如何選擇正確的選項是一個挑戰(zhàn)。例如,兩年前這篇文章《OverviewofPythonVisualizationTools》(http://pbpython.com/visualization-tools-1.html)仍然吸引了大量讀者。在那篇文章中,我否定了Matplotlib。但是,在使用過pandas、scikit-learn、seaborn和其他Python數(shù)據(jù)科學棧之后,我覺得之前否認Matplotlib的行為有點不成熟。坦白講,當時我不是很了解Matplotlib,也不懂如何在我的工作流中高效使用Matplotlib。

現(xiàn)在我學習了一些工具,了解了如何用Matplotlib使用這些工具,Matplotlib逐漸變成了必需工具。本文將展示如何使用Matplotlib。我堅定地認為Matplotlib是Python數(shù)據(jù)科學棧必不可少的一部分,希望這篇文章可以幫助大家了解如何使用Matplotlib進行Python可視化。

為什么大家都在否定Matplotlib?

我認為,Matplotlib對于新手來說比較難存在幾個原因。首先,Matplotlib有兩個界面。第一個界面基于MATLAB,使用基于狀態(tài)的接口。第二個界面是面向?qū)ο蟮慕涌?。本文就不展開介紹Matplotlib有兩個界面的原因,但了解這兩種方法在使用Matplotlib繪圖時會很重要。兩個界面會引起混淆的原因是堆棧溢出和通過谷歌搜索獲取的大量信息,新用戶將發(fā)現(xiàn)問題的多個解決方案,但是這些問題看起來類似卻不完全相同。從我的個人經(jīng)驗來講,從以前的代碼中,我可以看出有一些Matplotlib代碼的混雜,我對此感覺很疑惑(盡管寫它們的人是我……):-)

關(guān)鍵點

Matplotlib新手應(yīng)該學習和使用面向?qū)ο蟮慕涌凇?/p>

使用Matplotlib的另一個歷史性挑戰(zhàn)是一些默認的樣式缺乏吸引力。在R使用ggplot就可以生成相當不錯的圖的世界中,Matplotlib相對來說有點丑。好消息是Matplotlib2.0中的樣式好看了很多,你可以用最小的努力生成可視化。

第三個挑戰(zhàn)是你不確定什么時候該使用Matplotlib,什么時候該使用基于Matplotlib構(gòu)建的工具,如pandas或seaborn。大部分時候做一件事都有多種選擇,但是對于新手來說選擇正確的道路有些困難。這種混淆加上兩種不同API的混淆簡直就是挫敗本敗了……

為什么使用Matplotlib?

盡管Matplotlib有這么多問題,我還是喜歡用它,因為它很強大。這個庫允許你創(chuàng)建幾乎所有可視化。此外,圍繞Matplotlib有一個豐富的Python工具生態(tài)環(huán)境,很多更高級的可視化工具使用Matplotlib作為基礎(chǔ)庫。如果你想在Python數(shù)據(jù)科學棧中進行任何操作,你需要對如何使用Matplotlib有一些基礎(chǔ)了解。這就是本文其余部分的重點——提供一種高效使用Matplotlib的基礎(chǔ)方法。

前提

推薦以下步驟學習如何使用Matplotlib:

1.學習Matplotlib的基本術(shù)語,具體來說就是什么是Figure和Axes。

2.一直使用面向?qū)ο蟮慕缑妫B(yǎng)成習慣。

3.用基礎(chǔ)的pandas繪圖開始可視化。

4.使用seaborn進行稍微復(fù)雜的數(shù)據(jù)可視化。

5.使用Matplotlib自定義pandas或seaborn可視化。

下圖非常重要,有助于理解圖的不同術(shù)語。

大部分術(shù)語很直接易懂,需要牢記的是Figure是可能包含一或多個axes的最終圖像。Axes代表單個圖。一旦你理解這些是什么以及如何通過面向?qū)ο蟮腁PI評估它們,其余步驟就很簡單了。

了解這個知識還有一個好處,就是當你在網(wǎng)絡(luò)上看東西的時候有一個出發(fā)點。如果你花時間了解了這個點,那么其他的MatplotlibAPI才有意義。此外,很多高級Python包,如seaborn和ggplot依賴于Matplotlib構(gòu)建,因此理解了基礎(chǔ),學習更強大的框架才更加容易。

最后,我不是說你應(yīng)該逃避其他優(yōu)秀選項,如ggplot(又名ggpy)、bokeh、plotly或altair。我只是認為你需要對matplotlib+pandas+seaborn有一個基礎(chǔ)的了解。了解基礎(chǔ)可視化棧之后,你就可以探索其他優(yōu)秀工具,根據(jù)需求做出合適的選擇。

開始

下面主要介紹如何在pandas中創(chuàng)建基礎(chǔ)的可視化以及使用Matplotlib定制最常用的項。了解基礎(chǔ)流程有助于更直觀地進行自定義。

我主要關(guān)注最常見的繪圖任務(wù),如標注軸、調(diào)整圖形界限(limit)、更新圖標題、保存圖像和調(diào)整圖例。

開始,我打算設(shè)置輸入,讀取一些數(shù)據(jù):

importpandasaspd

importmatplotlib.pyplotasplt

frommatplotlib.tickerimportFuncFormatter

df=pd.read_excel("https://github.com/chris1610/pbpython/blob/master/data/sample-salesv3.xlsx?raw=true")

df.head()

數(shù)據(jù)包括2014年的銷售交易額。為簡短起見,我將總結(jié)這些數(shù)據(jù),列出前十名客戶的采購次數(shù)和交易額。繪圖時我將對各列進行重命名。

top_10=(df.groupby('name')['extprice','quantity'].agg({'extprice':'sum','quantity':'count'})

.sort_values(by='extprice',ascending=False))[:10].reset_index()

top_10.rename(columns={'name':'Name','extprice':'Sales','quantity':'Purchases'},inplace=True)

下圖是數(shù)據(jù)。

現(xiàn)在數(shù)據(jù)在簡單的表格形式呈現(xiàn),我們再來看一下如何將數(shù)據(jù)繪制成條形圖。如前所述,Matplotlib具備多種不同風格,可用于渲染圖表。你可以使用plt.style.available查看你的系統(tǒng)可用的風格。

plt.style.available

['seaborn-dark',

'seaborn-dark-palette',

'fivethirtyeight',

'seaborn-whitegrid',

'seaborn-darkgrid',

'seaborn',

'bmh',

'classic',

'seaborn-colorblind',

'seaborn-muted',

'seaborn-white',

'seaborn-talk',

'grayscale',

'dark_background',

'seaborn-deep',

'seaborn-bright',

'ggplot',

'seaborn-paper',

'seaborn-notebook',

'seaborn-poster',

'seaborn-ticks',

'seaborn-pastel']

使用如下簡單風格:

plt.style.use('ggplot')

我鼓勵大家使用不同的風格,找到自己喜歡的。

現(xiàn)在我們有了好看的風格,第一步就是使用標準pandas繪圖函數(shù)繪制數(shù)據(jù):

top_10.plot(kind='barh',y="Sales",x="Name")

推薦使用pandas繪圖的原因在于它是一種快速便捷地建立可視化原型的方式。

自定義圖表

如果你對該圖表的重要部分都很滿意,那么下一步就是對它執(zhí)行自定義。一些自定義(如添加標題和標簽)可以使用pandasplot函數(shù)輕松搞定。但是,你可能會發(fā)現(xiàn)自己需要在某個時刻跳出來。這就是我推薦你養(yǎng)成以下習慣的原因:

fig,ax=plt.subplots()

top_10.plot(kind='barh',y="Sales",x="Name",ax=ax)

生成的圖表和原始圖表基本一樣,不過我們向plt.subplots()添加了一個額外的調(diào)用,并將ax傳輸至繪圖函數(shù)。為什么要這么做呢?還記得我說在Matplotlib中獲取軸和圖像非常關(guān)鍵嗎?這里所做的就是為了達到該目的。通過ax或fig對象可以執(zhí)行任何自定義。

我們利用pandas實現(xiàn)快速繪圖,現(xiàn)在利用Matplotlib獲取所有功能。通過使用命名慣例,調(diào)整別人的解決方案適應(yīng)自己的需求變得更加直接簡單了。

假設(shè)我們想調(diào)整x極限,改變一些軸標簽。現(xiàn)在我們在ax變量中有多個軸,可以進行一些操作:

fig,ax=plt.subplots()

top_10.plot(kind='barh',y="Sales",x="Name",ax=ax)

ax.set_xlim([-10000,140000])

ax.set_xlabel('TotalRevenue')

ax.set_ylabel('Customer');

這是另一種改變標題和標簽的簡單方式:

fig,ax=plt.subplots()

top_10.plot(kind='barh',y="Sales",x="Name",ax=ax)

ax.set_xlim([-10000,140000])

ax.set(title='2014Revenue',xlabel='TotalRevenue',ylabel='Customer')

為了進一步展示該方法,我們還可以調(diào)整圖像大小。使用plt.subplots()函數(shù)可以定義figsize,以英寸為單位。我們還可以使用ax.legend().set_visible(False)移除圖例。

fig,ax=plt.subplots(figsize=(5,6))

top_10.plot(kind='barh',y="Sales",x="Name",ax=ax)

ax.set_xlim([-10000,140000])

ax.set(title='2014Revenue',xlabel='TotalRevenue')

ax.legend().set_visible(False)

要想修改這個圖像,你可能需要執(zhí)行很多操作。圖中最礙眼的可能是總收益額的格式。Matplotlib可以使用FuncFormatter解決這一問題。該函數(shù)用途多樣,允許用戶定義的函數(shù)應(yīng)用到值,并返回格式美觀的字符串。

以下是貨幣格式化函數(shù),用于處理數(shù)十萬美元區(qū)間的數(shù)值:

defcurrency(x,pos):

'Thetwoargsarethevalueandtickposition'

ifx>=1000000:

return'${:1.1f}M'.format(x*1e-6)

return'${:1.0f}K'.format(x*1e-3)

現(xiàn)在我們有了格式化程序函數(shù),就需要定義它,并將其應(yīng)用到x軸。完整代碼如下:

fig,ax=plt.subplots()

top_10.plot(kind='barh',y="Sales",x="Name",ax=ax)

ax.set_xlim([-10000,140000])

ax.set(title='2014Revenue',xlabel='TotalRevenue',ylabel='Customer')

formatter=FuncFormatter(currency)

ax.xaxis.set_major_formatter(formatter)

ax.legend().set_visible(False)

這張圖美觀多了,非常好地展示了自定義問題解決方案的靈活性。最后要說的自定義特征是向圖表添加注釋。你可以使用ax.axvline()畫垂直線,使用ax.text()添加自定義文本。就以上示例,我們可以畫一條表示平均值的線,包括代表3個新客戶的標簽。以下是完整代碼:

#Createthefigureandtheaxes

fig,ax=plt.subplots()

#Plotthedataandgettheaveraged

top_10.plot(kind='barh',y="Sales",x="Name",ax=ax)

avg=top_10['Sales'].mean()

#Setlimitsandlabels

ax.set_xlim([-10000,140000])

ax.set(title='2014Revenue',xlabel='TotalRevenue',ylabel='Customer')

#Addalinefortheaverage

ax.axvline(x=avg,color='b',label='Average',linestyle='--',linewidth=1)

#Annotatethenewcustomers

forcustin[3,5,8]:

ax.text(115000,cust,"NewCustomer")

#Formatthecurrency

formatter=FuncFormatter(currency)

ax.xaxis.set_major_formatter(formatter)

#Hidethelegend

ax.legend().set_visible(False)

這可能不是最壯觀的圖,但它確實展示了使用該方法的力量。

圖表

目前,我們所做的所有改變都是針對單個圖表。我們還能夠在圖像上添加多個表,使用不同的選項保存整個圖像。

如果我們確定要在同一個圖像上放置兩個表,那么我們應(yīng)該對如何做有一個基礎(chǔ)了解。首先,創(chuàng)建圖像,然后創(chuàng)建軸,再將它們繪制成圖表。使用plt.subplots()可以完成該操作:

fig,(ax0,ax1)=plt.subplots(nrows=1,ncols=2,sharey=True,figsize=(7,4))

在這個例子中,我使用nrows和ncols指定大小,這對新用戶來說比較清晰易懂。

在示例代碼中,你會經(jīng)??吹阶兞咳?、2。我認為使用命名參數(shù)便于稍后查看代碼時理解代碼。

我還使用sharey=True以使y軸共享相同的標簽。

該示例很靈活,因為不同的軸可以解壓成ax0和ax1?,F(xiàn)在我們有了這些軸,就可以像上述示例中那樣繪圖,然后把一個圖放在ax0上,另一個圖放在ax1。

#Getthefigureandtheaxes

fig,(ax0,ax1)=plt.subplots(nrows=1,ncols=2,sharey=True,figsize=(7,4))

top_10.plot(kind='barh',y="Sales",x="Name",ax=ax0)

ax0.set_xlim([-10000,140000])

ax0.set(title='Revenue',xlabel='TotalRevenue',ylabel='Customers')

#Plottheaverageasaverticalline

avg=top_10['Sales'].mean()

ax0.axvline(x=avg,color='b',label='Average',linestyle='--',linewidth=1)

#Repeatfortheunitplot

top_10.plot(kind='barh',y="Purchases",x="Name",ax=ax1)

avg=top_10['Purchases'].mean()

ax1.set(title='Units',xlabel='TotalUnits',ylabel='')

ax1.axvline(x=avg,color='b',label='Average',linestyle='--',linewidth=1)

#Titlethefigure

fig.suptitle('2014SalesAnalysis',fontsize=14,fontweight='bold');

#Hidethelegends

ax1.legend().set_visible(False)

ax0.legend().set_visible(False)

現(xiàn)在,我已經(jīng)在jupyternotebook中用%matplotlibinline展示了很多圖像。但是,在很多情況下你需要以特定格式保存圖像,將其和其他呈現(xiàn)方式整合在一起。

Matplotlib支持多種不同文件保存格式。你可以使用fig.canvas.get_supported_filetypes()查看系統(tǒng)支持的文件格式:

fig.canvas.get_supported_filetypes()

{'eps':'EncapsulatedPostscript',

'jpeg':'JointPhotographicExpertsGroup',

'jpg':'JointPhotographicExpertsGroup',

'pdf':'PortableDocumentFormat',

'pgf':'PGFcodeforLaTeX',

'png':'PortableNetworkGraphics',

'ps':'Postscript',

'raw':'RawRGBAbitmap',

'rgba':'RawRGBAbitmap',

'svg':'ScalableVectorGraphics',

'svgz':'ScalableVectorGraphics',

'tif':'TaggedImageFileFormat',

'tiff':'TaggedImageFileFormat'}

我們有fig對象,因此我們可以將圖像保存成多種格式:

fig.savefig('sales.png',transparent=False,dpi=80,bbox_inches="tight")

該版本將圖表保存為不透明背景的png文件。我還指定dpi和bbox_inches="tight"以最小化多余空白。

結(jié)論

希望該方法可以幫助大家理解如何更有效地使用Matplotlib進行日常數(shù)據(jù)分析。

帶分隔符的ascii文件是什么

M=dlmread(‘filename’)從由filename指定的具有分割標志的ASCII文件中讀取數(shù)值數(shù)據(jù),使用一個分隔符作為格式化的文件的暗示信息。默認分隔符使用逗號(,)。

M=dlmread(‘filename’,delimiter)這里指定了分隔符。使用\t代表制表符tab分隔。

linux怎么把標準輸出重定向其他文件

command>filename把把標準輸出重定向到一個新文件中command>>filename把把標準輸出重定向到一個文件中(追加)command

1>fielname把把標準輸出重定向到一個文件中command>filename2>&1把把標準輸出和標準錯誤一起重定向到一個文件中command

2>filename把把標準錯誤重定向到一個文件中command2>>filename把把標準輸出重定向到一個文件中(追加)command>>filename2>&1把把標準輸出和標準錯誤一起重定向到一個文件中(追加)command<filename>filename2把command命令以filename文件作為標準輸入,以filename2文件作為標準輸出command<filename把command命令以filename文件作為標準輸入command<<delimiter把從標準輸入中讀入,直至遇到delimiter分界符command<&m把把文件描述符m作為標準輸入command>&m把把標準輸出重定向到文件描述符m中command<&-把關(guān)閉標準輸入

vba split函數(shù)的使用方法

VBA中的Split函數(shù)主要用于將一個字符串按照指定的分隔符進行分割,并返回一個字符串數(shù)組。Split函數(shù)的使用方法如下:

```VBA

Split(expression,delimiter,[limit],[compare])

```

其中,各參數(shù)的含義如下:

-`expression`:必需,要進行分割的字符串。

-`delimiter`:必需,指定分隔符的字符串。

-`limit`:可選,指定返回的字符串數(shù)組的最大元素個數(shù)。如果省略該參數(shù),則返回所有分割后的元素。

-`compare`:可選,指定比較字符串時使用的方法。具體取值可以為vbBinaryCompare(二進制比較)或vbTextCompare(文本比較),默認值為vbBinaryCompare。

例如,如下的代碼使用逗號作為分隔符,將字符串"apple,banana,orange"分割為一個字符串數(shù)組,并輸出數(shù)組的第二個元素"banana":

```VBA

DimfruitsAsString

DimfruitArray()AsString

fruits="apple,banana,orange"

fruitArray=Split(fruits,",")

MsgBoxfruitArray(1)'輸出"banana"

```

需要注意的是,Split函數(shù)返回的是一個字符串數(shù)組,因此可以使用數(shù)組下標來訪問各個元素。同時,如果字符串中不存在分隔符,則返回的數(shù)組只包含原字符串一個元素。

excel join函數(shù)

Join函數(shù),返回一個包含子字符串數(shù)組中的指定數(shù)量的字符串。這與Split方法的作用完全相反。

語法

Join(List[,delimiter])

1.List,必需的參數(shù)。要加入包含屬于子數(shù)組。

2.delimiter,一個可選的參數(shù)。字符就是返回的字符串,用作分隔符。缺省的分隔符是空格。

OK,本文到此結(jié)束,希望對大家有所幫助。