python的数据可视化教程,不包含seaborn的原生数据展示。
一、坐标系
限制坐标范围、取消边线颜色、确定坐标系原点
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-1,3,100)
y1 = 2 * x - 0.5
y2 = x**2
plt.figure()
l1, = plt.plot(x, y2, label='y2')
l2, = plt.plot(x, y1, label="y1", lw=2, linestyle="--")
## 定义新的坐标标注点
new_ticks = np.linspace(-1,2,10)
plt.xticks(new_ticks)
y_ticks = np.linspace(-1,4,5)
## 用文字替代数字标注
plt.yticks(y_ticks, [r"so bad", r"bad", r"normal", r"good", r"very good"])
plt.xlim((-1,2))
plt.ylim((-1,5))
ax = plt.gca() # get current axis
## 将右边的坐标线颜色取消
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position("bottom")
ax.yaxis.set_ticks_position("left")
## 设置坐标系的中心, data对应的是y轴数据和x轴数据
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', -1))
# 标注点 x0, y0
x0 = 1
y0 = 2*x0 +1
plt.scatter(x0, y0)
plt.plot([x0, x0], [y0, 0], 'k--', color="g", lw=2.5)
二、两种标注方法
# 标注点 x0, y0
x0 = 1
y0 = 2*x0 +1
plt.scatter(x0, y0)
plt.plot([x0, x0], [y0, 0], 'k--', color="g", lw=2.5)
# annoation 标注, 有两种方法
## 方法 1
plt.annotate(r'$2x+1=%s$' % y0, xy=(x0, y0), xycoords='data', xytext=(+30, -30), textcoords="offset points",
fontsize=16, arrowprops=dict(arrowstyle="->", connectionstyle='arc3, rad=0'))
## 方法 2 文字
plt.text(