備忘:我常用的matplotlib.pyplot操作

一:

import numpy as np
from scipy.stats import beta
import matplotlib.pyplot as plt
from scipy import stats

colors = [
    'green',
    'red',
    'orange',
    'brown',
    'pink',
    'gray',
    'olive',
    'blue',
    'purple',
]
x = np.linspace(0, 1, 1001)[1:-1]
fig, ax = plt.subplots()

ks = [8, 20, 80]
ns = [20, 50, 200]
for i in range(len(ks)):
    a = ks[i]
    b = ns[i] - ks[i]
    y = stats.beta(a, b).pdf(x)
    plt.plot(x, y, c=colors[i], label='n={}'.format(ns[i]), linewidth='2.25')

    pa = (a - 1) / (a + b - 2)
    y_max = beta.pdf(pa, a, b)
    plt.plot(pa, y_max, c=colors[i], marker='o', markersize=5)
    ax.annotate(r'a', xy=(pa, y_max), xytext=(pa + 0.02, y_max + 0.04),
                arrowprops=dict(facecolor=colors[i], arrowstyle='-'),
                fontsize=18)

plt.xlabel(r'xlabel', fontsize=18)
plt.ylabel(r'ylabel', fontsize=18)
plt.title('Title.', fontsize=18)
plt.legend(loc=0, fontsize=18)
plt.tick_params(labelsize=18)
plt.show()

二:seaborn

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# 讀取文件
dataset = pd.read_csv('xxx.txt', index_col=None)

# 設置風格
sns.set_style("white")
sns.set_context("paper", font_scale=1.5, rc={"lines.linewidth": 2.25})
sns.distplot(dataset["expectation"], hist=False, kde=True, rug=True,
             rug_kws={'color': 'y', 'lw': 0.5, 'alpha': 0.5, 'height': 0.1},  # 設置數據頻率分佈顏色#控制是否顯示觀測的小細條(邊際毛毯)
             kde_kws={"color": "y", "lw": 2.25, 'linestyle': '--'},  # 設置密度曲線顏色,線寬,標註、線形,#控制是否顯示核密度估計圖
             label='legend1')
sns.distplot(dataset["score"], hist=False, bins=6, kde=True, rug=True,
             rug_kws={'color': 'g', 'lw': 0.5, 'alpha': 0.5},
             kde_kws={"color": "g", "lw": 2.25, 'linestyle': '--'},
             label='legend2')

plt.xlabel('xlabel', fontsize=18)
plt.ylabel('ylabel', fontsize=18)
plt.title('Title.', fontsize=18)
plt.legend(loc=0, fontsize=18)
plt.tick_params(labelsize=18)
plt.show()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章