1. 程式人生 > 其它 >「BalkanOI 2018 Day1」Election

「BalkanOI 2018 Day1」Election

matplotlib是一個綜合的視覺化庫,用於建立靜態的,動畫的,和互動的視覺化效果

安裝

下載 miniconda

下載地址Miniconda — Conda documentation

啟動conda

選擇Anaconda prompt

使用conda安裝matplotlib相關環境

複製程式碼
  • 1
  • 2
  • 3
  • 4
conda install matplotlib
conda install jupyter
conda install pandas
拓展

Conda是一個管理版本和Python環境的工具

相關連結:Conda使用指南 - 知乎 (zhihu.com)

matplotlib三層結構

1,容器層

​ 1,canvas畫板

​ 2,figure畫布

​ 3,axes繪畫區

2,影象層

​ 1,根據資料繪製出來的影象,包含plot,scatter,bar,hist,pie等函式繪製出來的影象

3,輔助顯示層

​ 繪圖區中除了影象層以外的內容

案例---繪製折線圖

在資料夾目錄輸入cmd進入終端

輸入

複製程式碼
  • 1
jupyter notebook

進入瀏覽器介面

複製程式碼
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
import matplotlib.pyplot as plt
#1,準備資料
time = ['20200401','20200402','20200403','20200404','20200405']
china = [93,78,73,55,75]
#2,建立畫布
plt.figure(figsize=(10,8),dpi=100)
#3,繪製折線圖
plt.plot(time,china)
#4,展示
plt.show()

新增輔助層

解決matplotlib中文問題

下載SimHei字型

檢視配置檔案位置

複製程式碼
  • 1
  • 2
  • 3
  • 4
  • 5
#瀏覽器輸入
import matplotlib
print(matplotlib.matplotlib_fname())
#輸出檔案位置
拷貝simhei.ttf檔案到mpl-data目錄下的font\ttf

修改配置檔案matplotlibrc,在尾部追加如下內容

font.family :sans-serif

font.sans-serif :SimHei

axes.unicode_minus :False

重啟jupyter notebook

常見API

plt.xticks(x,**kwargs) 新增x軸刻度

plt.yticks(y,**kwargs) 新增y軸刻度

plt.xlabel(xlabel) 新增x軸名稱

plt.ylabel(ylabel) 新增y軸名稱

plt.title(title) 新增圖形標題

plt.grid(True,linestyle='--',alpha=0.5) #是否開啟,格式,透明度

案例
複製程式碼
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
import matplotlib.pyplot as plt
#1,準備資料
time = ['20200401','20200402','20200403','20200404','20200405']
china = [93,78,73,55,75]
#2,建立畫布
plt.figure(figsize=(10,8),dpi=100)
#3,繪製折線圖
plt.plot(time,china)
#準備刻度
xticks = ['4月1日','4月2日','4月3日','4月4日','4月5日']
yticks = range(0,101,10)
#設定x,y軸刻度
plt.xticks(time,xticks)
plt.yticks(yticks)
#設定座標軸名稱
plt.xlabel('時間')
plt.ylabel('新增確診病例')
#設定影象標題
plt.title('中國新增病例情況')
#新增網格
plt.grid(True,linestyle='--',alpha=0.5)
#4,展示
plt.show()