XML DOM 獲取節點值
739
2025-04-03
Python基礎專欄四之Matplotlib(中)
圖表的樣式參數
導入相關模塊
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
% matplotlib inline
linestyle參數
plt.plot([i**2 for i in range(100)],
linestyle = '-.')
# '-' ? ? ? solid line style
# '--' ? ? ?dashed line style
# '-.' ? ? ?dash-dot line style
# ':' ? ? ? dotted line style
marker參數
s = pd.Series(np.random.randn(100).cumsum())
s.plot(linestyle = '--',
marker = '.')
# '.' ? ? ? point marker
# ',' ? ? ? pixel marker
# 'o' ? ? ? circle marker
# 'v' ? ? ? triangle_down marker
# '^' ? ? ? triangle_up marker
# '<' ? ? ? triangle_left marker
# '>' ? ? ? triangle_right marker
# '1' ? ? ? tri_down marker
# '2' ? ? ? tri_up marker
# '3' ? ? ? tri_left marker
# '4' ? ? ? tri_right marker
# 's' ? ? ? square marker
# 'p' ? ? ? pentagon marker
# '*' ? ? ? star marker
# 'h' ? ? ? hexagon1 marker
# 'H' ? ? ? hexagon2 marker
# '+' ? ? ? plus marker
# 'x' ? ? ? x marker
# 'D' ? ? ? diamond marker
# 'd' ? ? ? thin_diamond marker
# '|' ? ? ? vline marker
# '_' ? ? ? hline marker
color參數
plt.hist(np.random.randn(100),
color = 'g',alpha = 0.8)
# alpha:0-1,透明度
# 常用顏色簡寫:red-r, green-g, black-k, blue-b, yellow-y
df = pd.DataFrame(np.random.randn(1000, 4),columns=list('ABCD'))
df = df.cumsum()
df.plot(style = '--.',alpha = 0.8,colormap = 'GnBu')
# colormap:顏色板
style參數,可以包含linestyle,marker,color
ts = pd.Series(np.random.randn(1000).cumsum(), index=pd.date_range('1/1/2000', periods=1000))
ts.plot(style = '--g.',grid = True)
# style → 風格字符串,這里包括了linestyle(-),marker(.),color(g)
# plot()內也有grid參數
整體風格樣式
import matplotlib.style as psl
print(plt.style.available)
# 查看樣式列表
psl.use('ggplot')
ts = pd.Series(np.random.randn(1000).cumsum(), index=pd.date_range('1/1/2000', periods=1000))
ts.plot(style = '--g.',grid = True,figsize=(10,6))
# 一旦選用樣式后,所有圖表都會有樣式,重啟后才能關掉
子圖
在matplotlib中,整個圖像為一個Figure對象,在Figure對象中可以包含一個或者多個Axes對象。
每個Axes(ax)對象都是一個擁有自己坐標系統的繪圖區域。
plt.figure, plt.subplot
導入相關模塊
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
% matplotlib inline
子圖創建1 - 先建立子圖然后填充圖表
fig = plt.figure(figsize=(10,6),facecolor = 'gray')
ax1 = fig.add_subplot(2,2,1) ?# 第一行的左圖
plt.plot(np.random.rand(50).cumsum(),'k--')
plt.plot(np.random.randn(50).cumsum(),'b--')
# 先創建圖表figure,然后生成子圖,(2,2,1)代表創建2*2的矩陣表格,然后選擇第一個,順序是從左到右從上到下
# 創建子圖后繪制圖表,會繪制到最后一個子圖
ax2 = fig.add_subplot(2,2,2) ?# 第一行的右圖
ax2.hist(np.random.rand(50),alpha=0.5)
ax4 = fig.add_subplot(2,2,4) ?# 第二行的右圖
df2 = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'])
ax4.plot(df2,alpha=0.5,linestyle='--',marker='.')
# 也可以直接在子圖后用圖表創建函數直接生成圖表
子圖創建2 - 創建一個新的figure,并返回一個subplot對象的numpy數組 → plt.subplot
fig,axes = plt.subplots(2,3,figsize=(10,4))
ts = pd.Series(np.random.randn(1000).cumsum())
print(axes, axes.shape, type(axes))
# 生成圖表對象的數組
ax1 = axes[0,1]
ax1.plot(ts)
plt.subplots,參數調整
fig,axes = plt.subplots(2,2,sharex=True,sharey=True)
# sharex,sharey:是否共享x,y刻度
for i in range(2):
for j in range(2):
axes[i,j].hist(np.random.randn(500),color='k',alpha=0.5)
plt.subplots_adjust(wspace=0,hspace=0)
# wspace,hspace:用于控制寬度和高度的百分比,比如subplot之間的間距
Python
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。