Python-----数据可视化(matplotlib)(二)

1.添加注释

plot.annotate('this is the bottom',xy=(0,1),xytext(0,20),
              arrowprops=dict(facecolor = 'r',frac=0.2,headwidth=30,width=20))

xy=箭头起始位置

xytext=注释位置

facecolor=箭头颜色

frac=箭头比例

headwidth=箭头宽度

width=箭身宽度

2.添加文本

plot.text(-2,40,'text test',family='fantasy',size=20,color='g',style='oblique',weight='light')

family=字体

style=斜体

weight=粗体

3.添加公式

plot.text(2,4,r"$\alpha_i \beta_j \pi \lambda \omega $",size=25)

注意要加r取消字符意,所有元素前要加反斜杠

4.区域填充

plt.fill(x,y1,'b',alpha=0.3)

plt.fill(x,y2,'r',alpha=0.3)

alpha=透明度

填充当中区域:

plt.fill_between(x, y1, y2, where=y1 > y2, facecolor='b', interpolate=True)
plt.fill_between(x, y1, y2, where=y1 < y2, facecolor='g', interpolate=True)

5.生成形状

xy1=np.array([0.2,0.2])
xy2=np.array([0.2,0.8])
xy3=np.array([0.8,0.2])
xy4=np.array([0.8,0.8])

circle=mpatches.Circle(xy1,0.05)

ax.add_patch(circle)

rect=mpatches.Rectangle(xy2,0.2,0.1,color='r')
ax.add_patch(rect)

polygon=mpatches.RegularPolygon(xy3,5,0.1,color='g')
ax.add_patch(polygon)

ellipse=mpatches.Ellipse(xy4,0.4,0.2,color='y')
ax.add_patch(ellipse)

圆形:xy1=圆心,第二个参数是半径

长方形:xy2=左下角的点坐标,先宽长度,再高长度

多边形:xy3=中心位置,第二个参数是多少条边,然后是半径长度

椭圆:xy4=中心位置,第二个参数是直径

6.绘制极坐标

theta = [0, np.pi / 2, np.pi, 3 * np.pi / 2, 2 * np.pi]

ax = plt.subplot(111, projection='polar')

ax.plot(theta, r, color='r', linewidth=3)

7.绘制散点-条形图

import numpy as np
import matplotlib.pyplot as plt

plt.style.use('ggplot')

x = np.random.randn(200)
y = x + np.random.randn(200) * 0.5

margin_border = 0.1
width = 0.6
margin_between = 0.02
height = 0.2

left_s = margin_border
bottom_s = margin_border
height_s = width
width_s = width

left_x = margin_border
bottom_x = margin_border + width + margin_between
height_x = height
width_x = width

left_y = margin_border + width + margin_between
bottom_y = margin_border
height_y = width
width_y = height

plt.figure(1, figsize=(8, 8))

rect_s = [left_s, bottom_s, width_s, height_s]
rect_x = [left_x, bottom_x, width_x, height_x]
rect_y = [left_y, bottom_y, width_y, height_y]

axScatter = plt.axes(rect_s)
axHisX = plt.axes(rect_x)
axHisY = plt.axes(rect_y)

axHisX.set_xticks([])
axHisY.set_yticks([])

axScatter.scatter(x, y)

bin_width = 0.25

xymax = np.max([np.max(np.fabs(x)), np.max(np.fabs(y))])

lim = int(xymax / bin_width + 1) * bin_width

axScatter.set_xlim(-lim, lim)
axScatter.set_ylim(-lim, lim)

bins = np.arange(-lim, lim + bin_width, bin_width)

axHisX.hist(x, bins=bins)
axHisY.hist(y, bins=bins, orientation='horizontal')

axHisX.set_xlim(axScatter.get_xlim())
axHisX.set_ylim(axScatter.get_ylim())
plt.show()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值