python畫圖--柱狀圖

來源:互聯網
上載者:User
python畫圖--柱狀圖

在上一篇(python畫圖--簡單開始及折線圖)的基礎上,下面我們來畫柱狀圖

有兩種柱狀圖(一種為histogram, 另一種為bar chart) 一、bar chart

主要用的方法為:


atplotlib.pyplot.bar(left, height, width=0.8, bottom=None, hold=None, data=None, **kwargs)

參數說明:

left: 每一個柱形左側的X座標

height:每一個柱形的高度

width: 柱形之間的寬度

bottom: 柱形的Y座標

color: 柱形的顏色

下面是程式碼範例:

# -*- coding: utf-8 -*-import numpy as np  import matplotlib.mlab as mlab  import matplotlib.pyplot as plt  X=[0,1,2,3,4,5]Y=[222,42,455,664,454,334]  fig = plt.figure()plt.bar(X,Y,0.4,color="green")plt.xlabel("X-axis")plt.ylabel("Y-axis")plt.title("bar chart")  plt.show()  plt.savefig("barChart.jpg")

結果如下:



下面是另一個例子:

# -*- coding: utf-8 -*-import numpy as npimport matplotlib.pyplot as pltimport matplotlib as mpldef draw_bar(labels,quants):    width = 0.4    ind = np.linspace(0.5,9.5,10)    # make a square figure    fig = plt.figure(1)    ax  = fig.add_subplot(111)    # Bar Plot    ax.bar(ind-width/2,quants,width,color='green')    # Set the ticks on x-axis    ax.set_xticks(ind)    ax.set_xticklabels(labels)    # labels    ax.set_xlabel('Country')    ax.set_ylabel('GDP (Billion US dollar)')    # title    ax.set_title('Top 10 GDP Countries', bbox={'facecolor':'0.8', 'pad':5})    plt.grid(True)    plt.show()    plt.savefig("bar.jpg")    plt.close()labels   = ['USA', 'China', 'India', 'Japan', 'Germany', 'Russia', 'Brazil', 'UK', 'France', 'Italy']quants   = [15094025.0, 11299967.0, 4457784.0, 4440376.0, 3099080.0, 2383402.0, 2293954.0, 2260803.0, 2217900.0, 1846950.0]draw_pie(labels,quants)
結果如下:



下面是官方文檔有關於bar chart的說明:

連結:http://matplotlib.org/api/pyplot_api.html

matplotlib.pyplot. bar ( left,  height,  width=0.8,  bottom=None,  hold=None,  data=None,  **kwargs )

Make a bar plot.

Make a bar plot with rectangles bounded by: left,  left +  width,  bottom,  bottom +  height (left, right, bottom and top edges)

Parameters:

left : sequence of scalars

the x coordinates of the left sides of the bars

height : sequence of scalars

the heights of the bars

width : scalar or array-like, optional

the width(s) of the bars default: 0.8

bottom : scalar or array-like, optional

the y coordinate(s) of the bars default: None

color : scalar or array-like, optional

the colors of the bar faces

edgecolor : scalar or array-like, optional

the colors of the bar edges

linewidth : scalar or array-like, optional

width of bar edge(s). If None, use default linewidth; If 0, don’t draw edges. default: None

tick_label : string or array-like, optional

the tick labels of the bars default: None

xerr : scalar or array-like, optional

if not None, will be used to generate errorbar(s) on the bar chart default: None

yerr : scalar or array-like, optional

if not None, will be used to generate errorbar(s) on the bar chart default: None

ecolor : scalar or array-like, optional

specifies the color of errorbar(s) default: None

capsize : scalar, optional

determines the length in points of the error bar caps default: None, which will take the value from theerrorbar.capsize rcParam.

error_kw : dict, optional

dictionary of kwargs to be passed to errorbar method. ecolor and capsize may be specified here rather than as independent kwargs.

align : {‘edge’, ‘center’}, optional

If ‘edge’, aligns bars by their left edges (for vertical bars) and by their bottom edges (for horizontal bars). If ‘center’, interpret the left argument as the coordinates of the centers of the bars. To align on the align bars on the right edge pass a negative width.

orientation : {‘vertical’, ‘horizontal’}, optional

The orientation of the bars.

log : boolean, optional

If true, sets the axis to be log scale. default: False

Returns:

bars : matplotlib.container.BarContainer

Container with all of the bars + errorbars

See also barh Plot a horizontal bar plot.

Notes

In addition to the above described arguments, this function can take a data keyword argument. If such a data argument is given, the following arguments are replaced by data[<arg>]: All arguments with the following names: ‘height’, ‘color’, ‘ecolor’, ‘edgecolor’, ‘bottom’, ‘tick_label’, ‘width’, ‘yerr’, ‘xerr’, ‘linewidth’, ‘left’.

Additional kwargs: hold = [True|False] overrides default hold state

Examples

Example: A stacked bar chart.

(Source code, png, hires.png, pdf)

二、histogram

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">主要用的的方法為:</span>

plt.hist()

先來瞭解一下hist的參數:

matplotlib.pyplot.hist(  x, bins=10, range=None, normed=False,   weights=None, cumulative=False, bottom=None,   histtype=u'bar', align=u'mid', orientation=u'vertical',   rwidth=None, log=False, color=None, label=None, stacked=False,   hold=None, **kwargs)  

x : (n,) array or sequence of (n,) arrays

這個參數是指定每個bin(箱子)分布的資料,對應x軸

bins : integer or array_like, optional

這個參數指定bin(箱子)的個數,也就是總共有幾條條狀圖

normed : boolean, optional

If True, the first element of the return tuple will be the counts normalized to form a probability density, i.e.,n/(len(x)`dbin)

這個參數指定密度,也就是每個條狀圖的佔比例比,預設為1

color : color or array_like of colors or None, optional

這個指定條狀圖的顏色


代碼如下:

# -*- coding: utf-8 -*-import numpy as np  import matplotlib.mlab as mlab  import matplotlib.pyplot as plt      # 資料  mu = 100 # mean of distribution  sigma = 15 # standard deviation of distribution  x = mu + sigma * np.random.randn(10000)    num_bins = 50  # the histogram of the data  n, bins, patches = plt.hist(x, num_bins, normed=1, facecolor='blue', alpha=0.5)  # add a 'best fit' line  y = mlab.normpdf(bins, mu, sigma)  plt.plot(bins, y, 'r--')  plt.xlabel('Smarts')  plt.ylabel('Probability')  plt.title(r'Histogram of IQ: $\mu=100$, $\sigma=15$')    # Tweak spacing to prevent clipping of ylabel  plt.subplots_adjust(left=0.15)  plt.show()  plt.savefig("hist.jpg")

結果如下:


以下是官方文檔的描述:

連結:http://matplotlib.org/api/pyplot_api.html

matplotlib.pyplot. hist ( x,  bins=10,  range=None,  normed=False,  weights=None,  cumulative=False,  bottom=None,  histtype='bar',  align='mid', orientation='vertical',  rwidth=None,  log=False,  color=None,  label=None,  stacked=False,  hold=None,  data=None,  **kwargs )

Plot a histogram.

Compute and draw the histogram of x. The return value is a tuple (n, bins, patches) or ([n0, n1, ...], bins, [patches0, patches1,...]) if the input contains multiple data.

Multiple data can be provided via x as a list of datasets of potentially different length ([x0, x1, ...]), or as a 2-D ndarray in which each column is a dataset. Note that the ndarray form is transposed relative to the list form.

Masked arrays are not supported at present.

Parameters:

x : (n,) array or sequence of (n,) arrays

Input values, this takes either a single array or a sequency of arrays which are not required to be of the same length

bins : integer or array_like, optional

If an integer is given, bins + 1 bin edges are returned, consistently with numpy.histogram() for numpy version >= 1.3.

Unequally spaced bins are supported if bins is a sequence.

default is 10

range : tuple or None, optional

The lower and upper range of the bins. Lower and upper outliers are ignored. If not provided, range is (x.min(), x.max()). Range has no effect if 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.