Python經常使用畫圖代碼(折線圖、柱狀圖、餅圖)

簡單記錄一下最簡單經常使用的三種論文插圖的python畫圖代碼,以做備忘。python

有不少很牛b的做圖教程,我也學不來,就扔給你們本身學吧:ide

  • 如何在論文中畫出漂亮的插圖?[1]

折線圖

代碼

import numpy as np
import matplotlib.pyplot as plt

# x軸刻度標籤
x_ticks = ['a''b''c''d''e''f']
# x軸範圍(0, 1, ..., len(x_ticks)-1)
x = np.arange(len(x_ticks))
# 第1條折線數據
y1 = [532416]
# 第2條折線數據
y2 = [316524]

# 設置畫布大小
plt.figure(figsize=(106))
# 畫第1條折線,參數看名字就懂,還能夠自定義數據點樣式等等。
plt.plot(x, y1, color='#FF0000', label='label1', linewidth=3.0)
# 畫第2條折線
plt.plot(x, y2, color='#00FF00', label='label2', linewidth=3.0)

# 給第1條折線數據點加上數值,前兩個參數是座標,第三個是數值,ha和va分別是水平和垂直位置(數據點相對數值)。
for a, b in zip(x, y1):
    plt.text(a, b, '%d'%b, ha='center', va= 'bottom', fontsize=18)
# 給第2條折線數據點加上數值
for a, b in zip(x, y2):
    plt.text(a, b, '%d'%b, ha='center', va= 'bottom', fontsize=18)

# 畫水平橫線,參數分別表示在y=3,x=0~len(x)-1處畫直線。
plt.hlines(30, len(x)-1, colors = "#000000", linestyles = "dashed")

# 添加x軸和y軸刻度標籤
plt.xticks([r for r in x], x_ticks, fontsize=18, rotation=20)
plt.yticks(fontsize=18)

# 添加x軸和y軸標籤
plt.xlabel(u'x_label', fontsize=18)
plt.ylabel(u'y_label', fontsize=18)

# 標題
plt.title(u'Title', fontsize=18)

# 圖例
plt.legend(fontsize=18)

# 保存圖片
plt.savefig('./figure.pdf', bbox_inches='tight')
# 顯示圖片
plt.show()

效果

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

柱狀圖

代碼

import numpy as np
import matplotlib.pyplot as plt

# x軸刻度標籤
x_ticks = ['a''b''c''d''e''f']
# 柱的寬度
barWidth = 0.25
# 第1個柱的x軸範圍(每一個柱子的中點)(0, 1, ..., len(x_ticks)-1)
x1 = np.arange(len(x_ticks))
# 第2個柱的x軸範圍(每一個柱子的中點)
x2 = [x + barWidth for x in x1]
# 第1個柱數據
y1 = [532416]
# 第2個柱數據
y2 = [316524]

# 設置畫布大小
plt.figure(figsize=(106))
# 畫第1個柱
plt.bar(x1, y1, color='#FF0000', width=barWidth, label='label1')
# 畫第2個柱
plt.bar(x2, y2, color='#00FF00', width=barWidth, label='label2')

# 給第1個柱數據點加上數值,前兩個參數是座標,第三個是數值,ha和va分別是水平和垂直位置(數據點相對數值)。
for a, b in zip(x1, y1):
    plt.text(a, b, '%d'%b, ha='center', va= 'bottom', fontsize=18)
# 給第2個柱數據點加上數值
for a, b in zip(x2, y2):
    plt.text(a, b, '%d'%b, ha='center', va= 'bottom', fontsize=18)

# 畫水平橫線
plt.hlines(30, len(x_ticks)-1+barWidth, colors = "#000000", linestyles = "dashed")

# 添加x軸和y軸刻度標籤
plt.xticks([r + barWidth/2 for r in x1], x_ticks, fontsize=18)
plt.yticks(fontsize=18)

# 添加x軸和y軸標籤
plt.xlabel(u'x_label', fontsize=18)
plt.ylabel(u'y_label', fontsize=18)

# 標題
plt.title(u'Title', fontsize=18)

# 圖例
plt.legend(fontsize=18)

# 保存圖片
plt.savefig('./figure.pdf', bbox_inches='tight')
# 顯示圖片
plt.show()

效果

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

餅圖

代碼

import numpy as np
import matplotlib.pyplot as plt

# 設置畫布大小
plt.figure(figsize=(1010))
# 設置每塊區域的標籤
labels = ['a''b''c''d''e']
# 設置每塊區域離圓心的距離,這裏a區域凸出一點點
explode = [0.050.010.010.010.01]
# 設置每塊區域的值
values = [15243]
# 設置每塊區域的顏色
colors = ['#F5DEB3''#87CEFA''#FFB6C1''#90EE90''#D3D3D3']

_, l_text, p_text = plt.pie(values, explode=explode, labels=labels, autopct='%1.1f%%', colors=colors)

# 設置標籤字體大小
for t in l_text:
    t.set_size(18)
# 設置數值字體大小
for t in p_text:
    t.set_size(18)

# 標題
plt.title(u'Title', fontsize=18)

# 圖例
plt.legend(fontsize=18)

# 保存圖片
plt.savefig('./figure.pdf', bbox_inches='tight')
# 顯示圖片
plt.show()

效果

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

Reference

[1]

如何在論文中畫出漂亮的插圖?: https://www.zhihu.com/question/21664179字體

相關文章
相關標籤/搜索