坐标操作

对数坐标轴

import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as sts

if __name__ == '__main__':
a = 0.031 / 10000 + 0.0337 / 10000
print(0.0336 * 100 / np.sqrt(a))  # 1320.95

r = sts.lognorm.rvs(0.954, size=1000)
c = plt.hist(r, bins=500)
plt.show()

# 双对数坐标下
fig, ax = plt.subplots()
ax.set_xscale("log")
ax.set_yscale("log")
ax.plot(c[1][:-1], c[0], 'o')
ax.set_xlim(1e-1, 1e6)
ax.set_ylim(1e-2, 1e6)
ax.grid()
plt.draw()
plt.show()

# 半对数坐标
fig1, ax1 = plt.subplots()
ax1.hist(r, bins=500)
ax1.set_xscale("log")
ax1.set_xlim(1e-1, 1e6)
ax1.grid()
plt.draw()
plt.show()


坐标刻度及其标记

python_matplotlib改变横坐标和纵坐标上的刻度(ticks)

font = {'family': 'arial', 'weight': 'normal', 'size': 14}
ax1.set_xticks([1,2,3,4,5)
ax1.set_xticklabels(x,font)
ax1.set_yticks([0,0.2,0.4,0.6,0.8,1])
ax1.set_yticklabels([0,0.2,0.4,0.6,0.8,1],font)


横坐标值逆序显示

import matplotlib.pyplot as plt

plt.figure()
ax1 = plt.subplot(111)
x_list = [1, 2, 3, 4, 5]
y_list = [5, 10, 20, 40, 80]
plt.sca(ax1)
plt.title("Test 1")
plt.xlabel("X")
plt.ylabel("Y")
plot1, = plt.plot(x_list, y_list, 'bo')
plt.show()


import matplotlib.pyplot as plt

plt.figure()
ax1 = plt.subplot(111)
x_list = [1, 2, 3, 4, 5]
y_list = [5, 10, 20, 40, 80]
plt.sca(ax1)
plt.title("Test 1")
plt.xlabel("X")
plt.ylabel("Y")
plot1, = plt.plot(x_list, y_list, 'bo')
plt.gca().invert_xaxis()  # 就这句话
plt.show()


边框操作

隐藏边框

ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['bottom'].set_visible(False)
ax.spines['left'].set_visible(False)


图例操作

图例置于边框外

ax.legend(loc='center left', bbox_to_anchor=(0.2, 1.12),ncol=3)


标题操作

标题位置

ax.set_title('AUC', font, x=0.5, y=1.05)


x,y可以控制标题的位置，但是记住要放在 font 后面，不然会报错.

SyntaxError: positional argument follows keyword argument


注释操作

注释字体

ax.annotate('{}'.format(height),
xy=(rect.get_x() + rect.get_width() / 2, height),
xytext=(0, 3),  # 3 points vertical offset
textcoords="offset points",
# 字体属性
size=12, family='arial',
ha='center', va='bottom')


配色操作

饼图颜色

#  色系 浅灰色 #d8dcd6   天蓝色 #069af3 lightblue(#7bc8f6)  blue with a hint of purple(#533cc6)   # purple red(#990147)
# dark royal blue(#02066f) royal(#0c1793)
ax.plot(a,b,linestyle='dotted',linewidth=2.5,marker='o',color='#e377c2',label='CN')
ax.plot(a,c,linestyle='dotted',linewidth=2.5,marker='v',color='#533cc6',label='RA')
ax.plot(a,d,linestyle='solid',linewidth=2.5,marker='d',color='#7d7f7c',label='PA')
ax.plot(a,e,linestyle='dashed',linewidth=2.5,marker='8',color='#01ff07',label='LP')


子图操作

子图间距

plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=None)

## 默认参数
left = 0.125  # the left side of the subplots of the figure
right = 0.9   # the right side of the subplots of the figure
bottom = 0.1  # the bottom of the subplots of the figure
top = 0.9     # the top of the subplots of the figure
wspace = 0.2  # the amount of width reserved for space between subplots,
# expressed as a fraction of the average axis width
hspace = 0.2  # the amount of height reserved for space between subplots,
# expressed as a fraction of the average axis height


06-19 2万+
10-02 8932
11-23 483
04-03 1万+
11-19 309
09-16 4万+
07-17 1271
10-11 1632
07-12 1706
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie