本文目錄一覽:
- 1、如何使用Python的Pandas庫繪製折線圖
- 2、python怎麼畫折線圖
- 3、用Python畫折線圖怎麼實現拉伸效果
- 4、python畫折線圖
- 5、python可視化神器——pyecharts庫
- 6、如何用python繪製各種圖形
如何使用Python的Pandas庫繪製折線圖
我們經常會使用Python的Pandas繪製各種數據圖形,那麼如何使用它繪製折線圖呢?下面我給大家分享一下。
工具/材料
Pycharm
01
首先我們需要打開Excel軟件準備需要的數據,這裡多準備幾列數據,一列就是一條折線,如下圖所示
02
然後我們打開Pycharm軟件,新建Python文件,導入Pandas庫,接着將Excel中的數據讀取進數據集緩存,如下圖所示
03
接下來我們利用plot方法繪製折線圖,如下圖所示,這裡只添加了一列標題
04
運行文件以後我們就可以看到折線圖顯示出來了,但是比較的簡單,下面我們逐漸的豐富它
05
然後在plot方法中將excel裡面的多列標題都添加進來,如下圖所示
06
這次在運行文件的時候我們就可以看到折線圖上有多條線了,如下圖所示
07
接下來我們在為折線圖設置標題,X,Y坐標軸的內容,如下圖所示
08
然後通過plot方法下面的area方法對摺線圖的空白區域進行疊加填充,如下圖所示
09
最後我們運行完善好後的文件,就可以看到如下圖所示的折線圖了,到此我們的折線圖繪製也就完成了
python怎麼畫折線圖
一、環境準備
linux ubuntu 下需安裝下面三個包:
Numpy, Scipy,Matplotlib
分別輸入下面的代碼進行安裝:
[plain] view plain copy
pip install numpy
pip install scipy
sudo apt-get install python-matplotlib
測試是否安裝成功
[html] view plain copy
python
import pylab
如果沒有報錯則安裝成功
二、開始畫圖
1. 畫最簡單的直線圖
代碼如下:
[python] view plain copy
import numpy as np
import matplotlib.pyplot as plt
x=[0,1]
y=[0,1]
plt.figure()
plt.plot(x,y)
plt.savefig(“easyplot.jpg”)
結果如下:
代碼解釋:
[python] view plain copy
#x軸,y軸
x=[0,1]
y=[0,1]
#創建繪圖對象
plt.figure()
#在當前繪圖對象進行繪圖(兩個參數是x,y軸的數據)
plt.plot(x,y)
#保存圖象
plt.savefig(“easyplot.jpg”)
2. 給圖加上標籤與標題
上面的圖沒有相應的X,Y軸標籤說明與標題
在上述代碼基礎上,可以加上這些內容
代碼如下:
[python] view plain copy
import numpy as np
import matplotlib.pyplot as plt
x=[0,1]
y=[0,1]
plt.figure()
plt.plot(x,y)
plt.xlabel(“time(s)”)
plt.ylabel(“value(m)”)
plt.title(“A simple plot”)
結果如下:
代碼解釋:
[python] view plain copy
plt.xlabel(“time(s)”) #X軸標籤
plt.ylabel(“value(m)”) #Y軸標籤
plt.title(“A simple plot”) #標題
3. 畫sinx曲線
代碼如下:
[python] view plain copy
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
#設置x,y軸的數值(y=sinx)
x = np.linspace(0, 10, 1000)
y = np.sin(x)
#創建繪圖對象,figsize參數可以指定繪圖對象的寬度和高度,單位為英寸,一英寸=80px
plt.figure(figsize=(8,4))
#在當前繪圖對象中畫圖(x軸,y軸,給所繪製的曲線的名字,畫線顏色,畫線寬度)
plt.plot(x,y,label=”$sin(x)$”,color=”red”,linewidth=2)
#X軸的文字
plt.xlabel(“Time(s)”)
#Y軸的文字
plt.ylabel(“Volt”)
#圖表的標題
plt.title(“PyPlot First Example”)
#Y軸的範圍
plt.ylim(-1.2,1.2)
#顯示圖示
plt.legend()
#顯示圖
plt.show()
#保存圖
plt.savefig(“sinx.jpg”)
結果如下:
4. 畫折線圖
代碼如下:
[python] view plain copy
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
#X軸,Y軸數據
x = [0,1,2,3,4,5,6]
y = [0.3,0.4,2,5,3,4.5,4]
plt.figure(figsize=(8,4)) #創建繪圖對象
plt.plot(x,y,”b–“,linewidth=1) #在當前繪圖對象繪圖(X軸,Y軸,藍色虛線,線寬度)
plt.xlabel(“Time(s)”) #X軸標籤
plt.ylabel(“Volt”) #Y軸標籤
plt.title(“Line plot”) #圖標題
plt.show() #顯示圖
plt.savefig(“line.jpg”) #保存圖
結果如下:
用Python畫折線圖怎麼實現拉伸效果
# encoding=utf-8import matplotlib.pyplot as pltfrom pylab import * #支持中文mpl.rcParams[‘font.sans-serif’] = [‘SimHei’] names = [‘5′, ’10’, ’15’, ’20’, ’25’]x = range(len(names))y = [0.855, 0.84, 0.835, 0.815, 0.81]y1=[0.86,0.85,0.853,0.849,0.83]#plt.plot(x, y, ‘ro-‘)#plt.plot(x, y1, ‘bo-‘)#pl.xlim(-1, 11) # 限定橫軸的範圍#pl.ylim(-1, 110) # 限定縱軸的範圍plt.plot(x, y, marker=’o’, mec=’r’, mfc=’w’,label=u’y=x^2曲線圖’)plt.plot(x, y1, marker=’*’, ms=10,label=u’y=x^3曲線圖’)plt.legend() # 讓圖例生效plt.xticks(x, names, rotation=45)plt.margins(0)plt.subplots_adjust(bottom=0.15)plt.xlabel(u”time(s)鄰居”) #X軸標籤plt.ylabel(“RMSE”) #Y軸標籤plt.title(“A simple plot”) #標題 plt.show()
python畫折線圖
# encoding=utf-8
import matplotlib.pyplot as plt
from pylab import * #支持中文
mpl.rcParams[‘font.sans-serif’] = [‘SimHei’]
names = [‘5′, ’10’, ’15’, ’20’, ’25’]
x = range(len(names))
y = [0.855, 0.84, 0.835, 0.815, 0.81]
y1=[0.86,0.85,0.853,0.849,0.83]
#plt.plot(x, y, ‘ro-‘)
#plt.plot(x, y1, ‘bo-‘)
#pl.xlim(-1, 11) # 限定橫軸的範圍
#pl.ylim(-1, 110) # 限定縱軸的範圍
plt.plot(x, y, marker=’o’, mec=’r’, mfc=’w’,label=u’y=x^2曲線圖’)
plt.plot(x, y1, marker=’*’, ms=10,label=u’y=x^3曲線圖’)
plt.legend() # 讓圖例生效
plt.xticks(x, names, rotation=45)
plt.margins(0)
plt.subplots_adjust(bottom=0.15)
plt.xlabel(u”time(s)鄰居”) #X軸標籤
plt.ylabel(“RMSE”) #Y軸標籤
plt.title(“A simple plot”) #標題
plt.show()
python可視化神器——pyecharts庫
無意中從今日頭條中看到的一篇文章,可以生成簡單的圖表。據說一些大數據開發們也是經常用類似的圖表庫,畢竟有現成的,改造下就行,誰會去自己造輪子呢。
pyecharts是什麼?
pyecharts 是一個用於生成 Echarts 圖表的類庫。Echarts 是百度開源的一個數據可視化 JS 庫。用 Echarts 生成的圖可視化效果非常棒, pyecharts 是為了與 Python 進行對接,方便在 Python 中直接使用數據生成圖 。使用pyecharts可以生成獨立的網頁,也可以在flask、django中集成使用。
安裝很簡單:pip install pyecharts
如需使用 Jupyter Notebook 來展示圖表,只需要調用自身實例即可,同時兼容 Python2 和 Python3 的 Jupyter Notebook 環境。所有圖表均可正常顯示,與瀏覽器一致的交互體驗,簡直不要太強大。
參考自pyecharts官方文檔:
首先開始來繪製你的第一個圖表
使用 Jupyter Notebook 來展示圖表,只需要調用自身實例即可
add() 主要方法,用於添加圖表的數據和設置各種配置項
render() 默認將會在根目錄下生成一個 render.html 的文件,文件用瀏覽器打開。
使用主題
自 0.5.2+ 起,pyecharts 支持更換主體色系
使用 pyecharts-snapshot 插件
如果想直接將圖片保存為 png, pdf, gif 格式的文件,可以使用 pyecharts-snapshot。使用該插件請確保你的系統上已經安裝了 Nodejs 環境。
安裝 phantomjs $ npm install -g phantomjs-prebuilt
安裝 pyecharts-snapshot $ pip install pyecharts-snapshot
調用 render 方法 bar.render(path=’snapshot.png’) 文件結尾可以為 svg/jpeg/png/pdf/gif。請注意,svg 文件需要你在初始化 bar 的時候設置 renderer=’svg’。
圖形繪製過程
基本上所有的圖表類型都是這樣繪製的:
chart_name = Type() 初始化具體類型圖表。
add() 添加數據及配置項。
render() 生成本地文件(html/svg/jpeg/png/pdf/gif)。
add() 數據一般為兩個列表(長度一致)。如果你的數據是字典或者是帶元組的字典。可利用 cast() 方法轉換。
多次顯示圖表
從 v0.4.0+ 開始,pyecharts 重構了渲染的內部邏輯,改善效率。推薦使用以下方式顯示多個圖表。如果使是 Numpy 或者 Pandas,可以參考這個示例
當然你也可以採用更加酷炫的方式,使用 Jupyter Notebook 來展示圖表,matplotlib 有的,pyecharts 也會有的
Note: 從 v0.1.9.2 版本開始,廢棄 render_notebook() 方法,現已採用更加 pythonic 的做法。直接調用本身實例就可以了。
比如這樣
還有這樣
如果使用的是自定義類,直接調用自定義類示例即可
圖表配置
圖形初始化
通用配置項
xyAxis:平面直角坐標系中的 x、y 軸。(Line、Bar、Scatter、EffectScatter、Kline)
dataZoom:dataZoom 組件 用於區域縮放,從而能自由關注細節的數據信息,或者概覽數據整體,或者去除離群點的影響。(Line、Bar、Scatter、EffectScatter、Kline、Boxplot)
legend:圖例組件。圖例組件展現了不同系列的標記(symbol),顏色和名字。可以通過點擊圖例控制哪些系列不顯示。
label:圖形上的文本標籤,可用於說明圖形的一些數據信息,比如值,名稱等。
lineStyle:帶線圖形的線的風格選項(Line、Polar、Radar、Graph、Parallel)
grid3D:3D笛卡爾坐標系組配置項,適用於 3D 圖形。(Bar3D, Line3D, Scatter3D)
axis3D:3D 笛卡爾坐標系 X,Y,Z 軸配置項,適用於 3D 圖形。(Bar3D, Line3D, Scatter3D)
visualMap:是視覺映射組件,用於進行『視覺編碼』,也就是將數據映射到視覺元素(視覺通道)
markLinemarkPoint:圖形標記組件,用於標記指定的特殊數據,有標記線和標記點兩種。(Bar、Line、Kline)
tooltip:提示框組件,用於移動或點擊鼠標時彈出數據內容
toolbox:右側實用工具箱
圖表詳細
Bar(柱狀圖/條形圖)
Bar3D(3D 柱狀圖)
Boxplot(箱形圖)
EffectScatter(帶有漣漪特效動畫的散點圖)
Funnel(漏斗圖)
Gauge(儀錶盤)
Geo(地理坐標系)
GeoLines(地理坐標系線圖)
Graph(關係圖)
HeatMap(熱力圖)
Kline/Candlestick(K線圖)
Line(折線/面積圖)
Line3D(3D 折線圖)
Liquid(水球圖)
Map(地圖)
Parallel(平行坐標系)
Pie(餅圖)
Polar(極坐標系)
Radar(雷達圖)
Sankey(桑基圖)
Scatter(散點圖)
Scatter3D(3D 散點圖)
ThemeRiver(主題河流圖)
TreeMap(矩形樹圖)
WordCloud(詞雲圖)
用戶自定義
Grid 類:並行顯示多張圖
Overlap 類:結合不同類型圖表疊加畫在同張圖上
Page 類:同一網頁按順序展示多圖
Timeline 類:提供時間線輪播多張圖
統一風格
註:pyecharts v0.3.2以後,pyecharts 將不再自帶地圖 js 文件。如用戶需要用到地圖圖表,可自行安裝對應的地圖文件包。
地圖文件被分成了三個 Python 包,分別為:
全球國家地圖:
echarts-countries-pypkg
中國省級地圖:
echarts-china-provinces-pypkg
中國市級地圖:
echarts-china-cities-pypkg
直接使用python的pip安裝
但是這裡大家一定要注意,安裝完地圖包以後一定要重啟jupyter notebook,不然是無法顯示地圖的。
顯示如下:
總得來說,這是一個非常強大的可視化庫,既可以集成在flask、Django開發中,也可以在做數據分析的時候單獨使用,實在是居家旅行的必備神器啊
如何用python繪製各種圖形
1.環境
系統:windows10
python版本:python3.6.1
使用的庫:matplotlib,numpy
2.numpy庫產生隨機數幾種方法
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)查詢結果為標準正態分布
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之間(半開區間 [low, high)),size個數據
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之間(閉區間 [low, high)),size個數據
In [10]: x=np.random.random_integers(2,10,5)
In [11]: x
Out[11]: array([7, 4, 5, 4, 2])
3.散點圖
x x軸
y y軸
s 圓點面積
c 顏色
marker 圓點形狀
alpha 圓點透明度 #其他圖也類似這種配置
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等區間分成100份
y=x**2+x**3+x**7
plt.plot(x,y)
plt.show()
折線圖使用plot函數
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設置橫向條形圖
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就是橫向的條形圖,不用設置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()
# #雙變量的直方圖# #顏色越深頻率越高# #研究雙變量的聯合分布
#雙變量的直方圖#顏色越深頻率越高#研究雙變量的聯合分布
x=np.random.rand(1000)+2
y=np.random.rand(1000)+3
plt.hist2d(x,y,bins=40)
plt.show()
7.餅狀圖
#設置x,y軸比例為1:1,從而達到一個正的圓
#labels標籤參數,x是對應的數據列表,autopct顯示每一個區域占的比例,explode突出顯示某一塊,shadow陰影
labes=[‘A’,’B’,’C’,’D’]
fracs=[15,30,45,10]
explode=[0,0.1,0.05,0]#設置x,y軸比例為1:1,從而達到一個正的圓
plt.axes(aspect=1)#labels標籤參數,x是對應的數據列表,autopct顯示每一個區域占的比例,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 點的形狀,whis虛線的長度plt.boxplot(data,sym=”o”,whis=1.5)plt.show()
#sym 點的形狀,whis虛線的長度
原創文章,作者:MWSGZ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/129374.html