首頁 > 軟體

Python matplotlib實現圖表主題變換範例詳解

2022-03-08 16:00:03

有時候因為jupyter notebook本身的主題不同,導致畫圖的時候與圖表的顏色衝突,看不清座標軸,這時候可以通過更換座標軸風格來解決:

一、更換主題樣式

plt.style.available
## 主題如下:
['Solarize_Light2',
 '_classic_test_patch',
 'bmh',
 'classic',
 'dark_background',
 'fast',
 'fivethirtyeight',
 'ggplot',
 'grayscale',
 'seaborn',
 'seaborn-bright',
 'seaborn-colorblind',
 'seaborn-dark',
 'seaborn-dark-palette',
 'seaborn-darkgrid',
 'seaborn-deep',
 'seaborn-muted',
 'seaborn-notebook',
 'seaborn-paper',
 'seaborn-pastel',
 'seaborn-poster',
 'seaborn-talk',
 'seaborn-ticks',
 'seaborn-white',
 'seaborn-whitegrid',
 'tableau-colorblind10']

原始風格:

# 折線圖進階
from matplotlib import pyplot as plt 
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微軟雅黑的字型
plt.title("中國票房2021TOP5") 
plt.plot(bo,prices,label='票房與票價')
plt.show()

更換主題:

plt.style.use('ggplot')

plt.style.use('seaborn')

plt.style.use('classic')

最終我的效果:

# 折線圖進階
from matplotlib import pyplot as plt 
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微軟雅黑的字型
plt.title("中國票房2021TOP5") 
plt.plot(bo,prices,label='票房與票價')
plt.plot(bo,persons,label='票房與人次')
plt.plot(bo,points,label='票房與評價')
plt.legend() # 顯示標籤
plt.xlabel('票房')
plt.ylabel('行情')
plt.show()

二、線條變換

'r^--' :紅色虛線

'g^--' :綠色虛線

'b^--' :藍色虛線

'g*-' :表示綠色,並且資料標記是一個星號

^:表示資料標記為一個向上的三角形

# 折線圖進階
from matplotlib import pyplot as plt 
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微軟雅黑的字型
plt.title("中國票房2021TOP5") 
plt.plot(bo,prices,'r^--',label='票房與票價')
plt.plot(bo,persons,label='票房與人次')
plt.plot(bo,points,label='票房與評價')
plt.legend() # 顯示標籤
plt.xlabel('票房') # 橫座標軸標題
plt.ylabel('行情') # 縱座標軸標題
plt.show()

# 折線圖進階
from matplotlib import pyplot as plt 
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微軟雅黑的字型
plt.title("中國票房2021TOP5") 
plt.plot(bo,prices,'r^--',label='票房與票價')
plt.plot(bo,persons,'g*-',label='票房與人次')
plt.plot(bo,points,'bo--',label='票房與評價')
plt.legend() # 顯示標籤
plt.xlabel('票房') # 橫座標軸標題
plt.ylabel('行情') # 縱座標軸標題
plt.show()

# 折線圖進階
from matplotlib import pyplot as plt 
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微軟雅黑的字型
plt.title("中國票房2021TOP5") 
plt.plot(bo,prices,'r^--',label='票房與票價')
plt.plot(bo,persons,'g*-',label='票房與人次')
plt.plot(bo,points,color='blue',marker='o',markersize=10,label='票房與評價')
plt.legend() # 顯示標籤
plt.xlabel('票房') # 橫座標軸標題
plt.ylabel('行情') # 縱座標軸標題
plt.show()

三、將圖表儲存成本地圖片

plt.savefig("cnbotop5.png")

四、新增輔助線

# 03 經典款式無輔助線
plt.style.use('classic')
# 折線圖進階
from matplotlib import pyplot as plt 
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微軟雅黑的字型
plt.title("中國票房2021TOP5") 
plt.plot(bo,prices,'r^--',label='票房與票價')
plt.plot(bo,persons,'g*-',label='票房與人次')
plt.plot(bo,points,color='blue',marker='o',markersize=10,label='票房與評價')
plt.legend() # 顯示標籤
plt.xlabel('票房') # 橫座標軸標題
plt.ylabel('行情') # 縱座標軸標題
plt.show()

plt.grid() # 新增格線

五、調整畫圖的大小和清晰度

plt.figure(figsize=(16,10),dpi=100)

這裡dpi就相當於清晰度,而figsize就是長度和寬度

六、使用動漫風格

# 05 使用特殊風格
from matplotlib import pyplot as plt 
plt.xkcd()
plt.figure(figsize=(16,10),dpi=100)
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微軟雅黑的字型
plt.rcParams.update({'font.family': "Microsoft YaHei"})
plt.title("中國票房2021TOP5") 
plt.plot(bo,prices,'r^--',label='票房與票價')
plt.plot(bo,persons,'g*-',label='票房與人次')
plt.plot(bo,points,color='blue',marker='o',markersize=10,label='票房與評價')
plt.legend() # 顯示標籤
plt.xlabel('票房') # 橫座標軸標題
plt.ylabel('行情') # 縱座標軸標題
plt.grid()
plt.savefig("cnbotop5_300.png")
plt.show()

調整長寬來進行影象的扁平化調整

七、橫座標的傾斜度

plt.xticks(rotation=45) # 橫座標軸的每個標題傾斜45度
# 繪製水平柱狀圖
plt.style.use('classic')
# cnbodfgbsort["BO"].to_list().reverse()
# cnbodfgbsort.index.to_list().reverse()
plt.figure(figsize=(16,10),dpi=100)
plt.rcParams.update({'font.family': "Microsoft YaHei"})
plt.title("中國票房分類柱狀圖") 
plt.barh(rcnboindex,rbolist)
plt.legend() # 顯示標籤
plt.xlabel('票房') # 橫座標軸標題
plt.ylabel('電影型別') # 縱座標軸標題
plt.xticks(rotation=45) # 橫座標軸的每個標題傾斜45度
plt.show()

八、橫縱座標軸轉換

rbolist=cnbodfgbsort["BO"].to_list()
rcnboindex=cnbodfgbsort.index.to_list()
rbolist
rbolist.reverse()
rbolist
rcnboindex.reverse()

以上就是Python matplotlib實現圖表主題變換範例詳解的詳細內容,更多關於Python matplotlib圖表主題變換的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com