c語言函數(shù)用來干嘛,c語言有什么函數(shù)

Python matplotlib之函數(shù)圖像繪制、線條rc參數(shù)設(shè)置

為避免中文顯示出錯,需導(dǎo)入matplotlib.pylab庫

創(chuàng)新互聯(lián)建站是一家專業(yè)從事成都網(wǎng)站建設(shè)、成都做網(wǎng)站的網(wǎng)絡(luò)公司。作為專業(yè)網(wǎng)站設(shè)計公司,創(chuàng)新互聯(lián)建站依托的技術(shù)實(shí)力、以及多年的網(wǎng)站運(yùn)營經(jīng)驗(yàn),為您提供專業(yè)的成都網(wǎng)站建設(shè)、全網(wǎng)營銷推廣及網(wǎng)站設(shè)計開發(fā)服務(wù)!

1.2.1 確定數(shù)據(jù)

1.2.2 創(chuàng)建畫布

1.2.3 添加標(biāo)題

1.2.4 添加x,y軸名稱

1.2.5 添加x,y軸范圍

1.2.6 添加x,y軸刻度

1.2.7 繪制曲線、圖例, 并保存圖片

保存圖片時,dpi為清晰度,數(shù)值越高越清晰。請注意,函數(shù)結(jié)尾處,必須加plt.show(),不然圖像不顯示。

繪制流程與繪制不含子圖的圖像一致,只需注意一點(diǎn):創(chuàng)建畫布。

合理調(diào)整figsize、dpi,可避免出現(xiàn)第一幅圖橫軸名稱與第二幅圖標(biāo)題相互遮蓋的現(xiàn)象.

2.2.1 rc參數(shù)類型

2.2.2 方法1:使用rcParams設(shè)置

2.2.3 方法2:plot內(nèi)設(shè)置

2.2.4 方法3:plot內(nèi)簡化設(shè)置

方法2中,線條形狀,linestyle可簡寫為ls;線條寬度,linewidth可簡寫為lw;線條顏色,color可簡寫為c,等等。

Python-openpyxl教程6 - 圖表之面積圖和條形圖

openpyxl可以使用以下圖表:

圖表至少由一系列一個或多個數(shù)據(jù)點(diǎn)組成。系列本身對單元格范圍的引用組成。

默認(rèn)情況下圖表的左上角固定在單元格E15上,大小為15x7.5厘米(大約5列乘14行 )??梢酝ㄟ^設(shè)置圖標(biāo)的anchor,width和height屬性來更改此設(shè)置。實(shí)際大小將取決于操作系統(tǒng)和設(shè)備。

其他錨點(diǎn)是可能的。請參考 openpyxl.drawing.spreadsheet_drawing 來獲取更多信息。

面積圖類似于折線圖,不同之處在于填充了繪制線下方的區(qū)域。通過將分組設(shè)置為"標(biāo)準(zhǔn)","堆疊"或"百分比堆疊",可以使用不同的變體。默認(rèn)為"標(biāo)準(zhǔn)"。

您還可以創(chuàng)建三維面積圖

這將生成一個簡單的三維面積圖,其中第三個軸可用于替換圖例:

在條形圖中,值被繪制為水平條或垂直列

這將產(chǎn)生四個圖表,說明各種可能性。

您還可以創(chuàng)建三維條形圖

這將生成一個簡單的三維條形圖。

note:有興趣的小伙伴可以幫忙看下在 office下的現(xiàn)象

如何用python繪制各種圖形

1.環(huán)境

系統(tǒng):windows10

python版本:python3.6.1

使用的庫:matplotlib,numpy

2.numpy庫產(chǎn)生隨機(jī)數(shù)幾種方法

import numpy as np

numpy.random

rand(d0,?d1,?...,?dn) ?

In [2]: x=np.random.rand(2,5)

In [3]: x

Out[3]:

array([[ 0.84286554, ?0.50007593, ?0.66500549, ?0.97387807, ?0.03993009],

[ 0.46391661, ?0.50717355, ?0.21527461, ?0.92692517, ?0.2567891 ]])

randn(d0,?d1,?...,?dn)查詢結(jié)果為標(biāo)準(zhǔn)正態(tài)分布

In [4]: x=np.random.randn(2,5)

In [5]: x

Out[5]:

array([[-0.77195196, ?0.26651203, -0.35045793, -0.0210377 , ?0.89749635],

[-0.20229338, ?1.44852833, -0.10858996, -1.65034606, -0.39793635]])

randint(low,high,size) ?

生成low到high之間(半開區(qū)間 [low, high)),size個數(shù)據(jù)

In [6]: x=np.random.randint(1,8,4)

In [7]: x

Out[7]: array([4, 4, 2, 7])

random_integers(low,high,size) ?

生成low到high之間(閉區(qū)間 [low, high)),size個數(shù)據(jù)

In [10]: x=np.random.random_integers(2,10,5)

In [11]: x

Out[11]: array([7, 4, 5, 4, 2])

3.散點(diǎn)圖

x x軸

y y軸

s ? 圓點(diǎn)面積

c ? 顏色

marker ?圓點(diǎn)形狀

alpha ? 圓點(diǎn)透明度????????????????#其他圖也類似這種配置

N=50# height=np.random.randint(150,180,20)# weight=np.random.randint(80,150,20)

x=np.random.randn(N)

y=np.random.randn(N)

plt.scatter(x,y,s=50,c='r',marker='o',alpha=0.5)

plt.show()

4.折線圖

x=np.linspace(-10000,10000,100) #將-10到10等區(qū)間分成100份

y=x**2+x**3+x**7

plt.plot(x,y)

plt.show()

折線圖使用plot函數(shù)

5.條形圖

N=5

y=[20,10,30,25,15]

y1=np.random.randint(10,50,5)

x=np.random.randint(10,1000,N)

index=np.arange(N)

plt.bar(left=index,height=y,color='red',width=0.3)

plt.bar(left=index+0.3,height=y1,color='black',width=0.3)

plt.show()

orientation設(shè)置橫向條形圖

N=5

y=[20,10,30,25,15]

y1=np.random.randint(10,50,5)

x=np.random.randint(10,1000,N)

index=np.arange(N)# plt.bar(left=index,height=y,color='red',width=0.3)# plt.bar(left=index+0.3,height=y1,color='black',width=0.3)#plt.barh() 加了h就是橫向的條形圖,不用設(shè)置orientation

plt.bar(left=0,bottom=index,width=y,color='red',height=0.5,orientation='horizontal')

plt.show()

6.直方圖

m1=100

sigma=20

x=m1+sigma*np.random.randn(2000)

plt.hist(x,bins=50,color="green",normed=True)

plt.show()

# #雙變量的直方圖# #顏色越深頻率越高# #研究雙變量的聯(lián)合分布

#雙變量的直方圖#顏色越深頻率越高#研究雙變量的聯(lián)合分布

x=np.random.rand(1000)+2

y=np.random.rand(1000)+3

plt.hist2d(x,y,bins=40)

plt.show()

7.餅狀圖

#設(shè)置x,y軸比例為1:1,從而達(dá)到一個正的圓

#labels標(biāo)簽參數(shù),x是對應(yīng)的數(shù)據(jù)列表,autopct顯示每一個區(qū)域占的比例,explode突出顯示某一塊,shadow陰影

labes=['A','B','C','D']

fracs=[15,30,45,10]

explode=[0,0.1,0.05,0]#設(shè)置x,y軸比例為1:1,從而達(dá)到一個正的圓

plt.axes(aspect=1)#labels標(biāo)簽參數(shù),x是對應(yīng)的數(shù)據(jù)列表,autopct顯示每一個區(qū)域占的比例,explode突出顯示某一塊,shadow陰影

plt.pie(x=fracs,labels=labes,autopct="%.0f%%",explode=explode,shadow=True)

plt.show()

8.箱型圖

import matplotlib.pyplot as pltimport numpy as npdata=np.random.normal(loc=0,scale=1,size=1000)#sym 點(diǎn)的形狀,whis虛線的長度plt.boxplot(data,sym="o",whis=1.5)plt.show()

#sym 點(diǎn)的形狀,whis虛線的長度

python可視化數(shù)據(jù)分析常用圖大集合(收藏)

python數(shù)據(jù)分析常用圖大集合:包含折線圖、直方圖、垂直條形圖、水平條形圖、餅圖、箱線圖、熱力圖、散點(diǎn)圖、蜘蛛圖、二元變量分布、面積圖、六邊形圖等12種常用可視化數(shù)據(jù)分析圖,后期還會不斷的收集整理,請關(guān)注更新!

以下默認(rèn)所有的操作都先導(dǎo)入了numpy、pandas、matplotlib、seaborn

一、折線圖

折線圖可以用來表示數(shù)據(jù)隨著時間變化的趨勢

Matplotlib

plt.plot(x,?y)

plt.show()

Seaborn

df?=?pd.DataFrame({'x':?x,?'y':?y})

sns.lineplot(x="x",?y="y",?data=df)

plt.show()

二、直方圖

直方圖是比較常見的視圖,它是把橫坐標(biāo)等分成了一定數(shù)量的小區(qū)間,然后在每個小區(qū)間內(nèi)用矩形條(bars)展示該區(qū)間的數(shù)值

Matplotlib

Seaborn

三、垂直條形圖

條形圖可以幫我們查看類別的特征。在條形圖中,長條形的長度表示類別的頻數(shù),寬度表示類別。

Matplotlib

Seaborn

1plt.show()

四、水平條形圖

五、餅圖

六、箱線圖

箱線圖由五個數(shù)值點(diǎn)組成:最大值 (max)、最小值 (min)、中位數(shù) (median) 和上下四分位數(shù) (Q3, Q1)。

可以幫我們分析出數(shù)據(jù)的差異性、離散程度和異常值等。

Matplotlib

Seaborn

七、熱力圖

力圖,英文叫 heat map,是一種矩陣表示方法,其中矩陣中的元素值用顏色來代表,不同的顏色代表不同大小的值。通過顏色就能直觀地知道某個位置上數(shù)值的大小。

通過 seaborn 的 heatmap 函數(shù),我們可以觀察到不同年份,不同月份的乘客數(shù)量變化情況,其中顏色越淺的代表乘客數(shù)量越多

八、散點(diǎn)圖

散點(diǎn)圖的英文叫做 scatter plot,它將兩個變量的值顯示在二維坐標(biāo)中,非常適合展示兩個變量之間的關(guān)系。

Matplotlib

Seaborn

九、蜘蛛圖

蜘蛛圖是一種顯示一對多關(guān)系的方法,使一個變量相對于另一個變量的顯著性是清晰可見

十、二元變量分布

二元變量分布可以看兩個變量之間的關(guān)系

十一、面積圖

面積圖又稱區(qū)域圖,強(qiáng)調(diào)數(shù)量隨時間而變化的程度,也可用于引起人們對總值趨勢的注意。

堆積面積圖還可以顯示部分與整體的關(guān)系。折線圖和面積圖都可以用來幫助我們對趨勢進(jìn)行分析,當(dāng)數(shù)據(jù)集有合計關(guān)系或者你想要展示局部與整體關(guān)系的時候,使用面積圖為更好的選擇。

十二、六邊形圖

六邊形圖將空間中的點(diǎn)聚合成六邊形,然后根據(jù)六邊形內(nèi)部的值為這些六邊形上色。

原文至:

怎樣用python 繪制條形圖

用matplotlib包的barh函數(shù)繪制的,大致布局已經(jīng)很相似了

import matplotlib.pyplot as plt

from matplotlib import cm

import numpy as np

label = ['a','b','c','d','e','f']

x = sorted([1234,221,765,124,2312,890])

idx = np.arange(len(x))

color = cm.jet(np.array(x)/max(x))

plt.barh(idx, x, color=color)

plt.yticks(idx+0.4,label)

plt.grid(axis='x')

plt.xlabel('Revenues Earned')

plt.ylabel('Salespeople')

plt.title('Top 12 Salespeople(2012)\n(in USD)')

plt.show()

如何用python繪制簡單條形圖?

如何用python繪制簡單條形圖呢?這里離不開matplotlib的使用。

條形圖是數(shù)據(jù)可視化圖形中很基礎(chǔ)也很常用的一種圖,簡單解釋下:條形圖也叫長條圖(英語:bar chart),亦稱條圖(英語:bar graph)、條狀圖、棒形圖、柱狀圖、條形圖表,是一種以長方形的長度為變量的統(tǒng)計圖表。長條圖用來比較兩個或以上的價值(不同時間或者不同條件),只有一個變量,通常利用于較小的數(shù)據(jù)集分析。長條圖亦可橫向排列,或用多維方式表達(dá)。

那么一個普通的條形圖是長什么樣子的呢?

當(dāng)!當(dāng)!當(dāng)!就是下圖的這個樣子:

圖先亮出來啦,接下來研究這個圖是怎么畫的吧,先看一下原數(shù)據(jù)長什么樣子:

實(shí)際畫圖的流程和畫折線圖很相近,只是用到的畫圖函數(shù)不一樣,繪制條形圖的函數(shù)plt.bar():

由于這只是最簡單的一個條形圖,實(shí)際上條形圖的函數(shù)plt.bar()還有不少可以探索的參數(shù)設(shè)置,和對折線圖函數(shù)plt.plot()的探索差不多,有興趣的孩子可以自己去進(jìn)行探索哦。

按照條形長短進(jìn)行排序展示的條形圖

當(dāng)然也可以有其他的設(shè)置,比如說上圖中的線條高低參差不齊,這是因?yàn)閤軸的數(shù)據(jù)是按照學(xué)校名稱進(jìn)行排序的,那么可不可以按照分?jǐn)?shù)的高低進(jìn)行排序呢?也就是讓所有的長方形按照從高到矮或者從矮到高的順序進(jìn)行排列?

當(dāng)然可以啦!這里需要強(qiáng)調(diào)的是,條的高低排列等信息都是來源于原數(shù)據(jù)的,要想讓條形的順序發(fā)生改變,需要對畫圖的來源數(shù)據(jù)進(jìn)行更改呢!

把原數(shù)據(jù)逆序排序后截取前十名數(shù)據(jù)賦值給data_yuwen,作為新的數(shù)據(jù)源傳入畫圖函數(shù)plt.bar(),畫出來的圖自然就不一樣了。

先看一眼數(shù)據(jù)長什么樣子:

根據(jù)這個數(shù)據(jù)源繪制出的圖形如下,由于用來畫圖的數(shù)據(jù)進(jìn)行了降序排序操作,所以生成條形圖的條也會進(jìn)行降序排序展示:

很多時候,我們常見的條形圖還有另一種展現(xiàn)形式,那就是橫向的條形圖,比較火的那種動態(tài)條形圖絕大多數(shù)也都是橫向的條形圖,那么橫向的條形圖如何繪制呢?

理解plt.bar()主要參數(shù)

其實(shí)也不難,只要清楚plt.bar()函數(shù)中主要參數(shù)的作用就可以了!條形圖函數(shù)中有五個主要參數(shù),分別是x,height,width,bottom,orientation。其中x控制的是每個條在x軸上位置,height控制的是每個條的長度,width控制的是每個條的寬度,bottom控制的是每個條在y軸方向的起始位置,orientation控制的是條形的方向,是縱向還是橫向,默認(rèn)是縱向的。

通過一個小例子理解下這幾個參數(shù)的作用:

上邊的幾行代碼輸出的圖形如下:

對比著代碼和實(shí)際輸出的條形圖,各個主要參數(shù)的作用是不是一目了然啦?

橫向條形圖

理解了這幾個參數(shù)作用后,縱向的條形圖轉(zhuǎn)換成橫向的條形圖就沒什么難度了!

需要設(shè)置所有條形在x軸的位置都為0,也就全部從最左側(cè)開始畫條形;由于是橫向條形圖,所以實(shí)際上條的寬度顯示的是數(shù)據(jù)大小,將width參數(shù)設(shè)置成原數(shù)據(jù)中的語文成績;bottom控制每個條在y軸方向的起始位置,設(shè)置bottom=range(10)設(shè)置每個條形在y軸的起始位置各不相同避免有條形重疊;height控制的是每個條在y軸方向上的長度,條形圖橫向設(shè)置后,在y軸上的長度失去了衡量數(shù)據(jù)的意義,所以直接設(shè)置一個常數(shù)即可;最后設(shè)置條形的方向?yàn)闄M向,即orientation=“horizontal”。

溫馨提示:數(shù)據(jù)和標(biāo)簽一定要匹配,即plt.bar()重點(diǎn)的數(shù)據(jù)要和plt.yticks()中提取出來的標(biāo)簽一一對應(yīng),一旦不匹配,整個圖展現(xiàn)的結(jié)果就是一個錯誤的結(jié)果!

上述代碼生成的條形圖如下:

感覺上邊這種生成橫向條形圖的方式有點(diǎn)點(diǎn)繞,和人們的習(xí)慣認(rèn)知有點(diǎn)不大一樣,難道畫一個橫向條形圖就非得轉(zhuǎn)變自己的習(xí)慣認(rèn)知這么反人類嗎?

當(dāng)然不是的,實(shí)際上有更簡單的方法繪制一個橫向條形圖,之所以沒有一開始就直接用這種簡單的方法,也是為了讓大家體會下條形圖參數(shù)的靈活設(shè)置而已,而且如果比較繞的方法都能理解了,簡單的方法理解和運(yùn)用起來就更沒有難度了??!

不賣關(guān)子了,我們來認(rèn)識下和plt.bar()函數(shù)類似的plt.barh()函數(shù)。

plt.barh()函數(shù)是專門繪制水平條形圖的函數(shù),主要的參數(shù)有:

y 控制y軸顯示的標(biāo)簽來源width 控制橫向條形的長度,即用來進(jìn)行對比的數(shù)據(jù)源height 條形的寬度需要設(shè)置的參數(shù)主要就是這三個,比用plt.bar()函數(shù)繪制水平條形圖簡單了很多,具體代碼如下:

效果圖:

和用plt.bar()函數(shù)繪制的橫向條形圖一毛一樣對不對?以后有需求繪制橫向條形圖,盡量用plt.barh()函數(shù)吧,畢竟它是專門繪制這種類型圖的,簡單好用。

然而實(shí)際工作中對于條形圖的需求不只是這些,比如例子中只是對各個學(xué)校語文成績的展示,有時候需要各個學(xué)科的成績同時展現(xiàn)在一幅條形圖中,有時候也需要繪制堆積條形圖對各學(xué)科的成績以及總成績進(jìn)行展示,這些圖又該如何繪制呢?其實(shí)只要理解了各個參數(shù)的含義,繪制這些圖也不在話下,至于具體怎么畫,且看下回分解??!

文章標(biāo)題:c語言函數(shù)用來干嘛,c語言有什么函數(shù)
轉(zhuǎn)載來源:http://muchs.cn/article16/hcpdgg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、服務(wù)器托管、網(wǎng)站內(nèi)鏈、App開發(fā)、企業(yè)建站、網(wǎng)頁設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)