数据可视化_Second_Chapter

函数积分图

在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
from matplotlib.patches import Polygon

def func(x):
    return -(x-2)*(x-8) + 40

x = np.linspace(0,10)
y = func(x)

fig,ax = plt.subplots()

plt.plot(x,y,"r",linewidth=2)

a = 2
b = 9

ax.set_xticks([a,b])
ax.set_yticks([])
ax.set_xticklabels([r"$a$",r"$b$"])
plt.figtext(0.9,0.05,r"$x$")
plt.figtext(0.1,0.9,r"$y$")

ix = np.linspace(a,b)
iy = func(ix)
ixy = zip(ix,iy)

verts = [(a,0)]+list(ixy)+[(b,0)]
print(verts)

poly =Polygon(verts,facecolor="0.9",edgecolor="0.5")
ax.add_patch(poly)

x_math = (a+b)/2
y_math = 35
plt.text(x_math,y_math,r"$\int_a^b -(x-2)*(x-8) + 40dx$",fontsize=10,
         horizontalalignment="center")

plt.ylim(25)
plt.show()

散点-条形图

在这里插入图片描述

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(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)
axHistX = plt.axes(rect_x)
axHistY = plt.axes(rect_y)

axHistX.set_xticks([])
axHistY.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+width,bin_width)
axHistX.hist(x,bins=bins)
axHistY.hist(y,bins=bins,orientation = "horizontal")
print(xymax)

axHistX.set_xlim(axScatter.get_xlim())
axHistY.set_ylim(axScatter.get_ylim())

plt.title("Sactter and Hist")
plt.show()

球员能力图

在这里插入图片描述

#_*_coding:utf-8_*_
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签
plt.rcParams['axes.unicode_minus']=False

plt.style.use("ggplot")

ability_size = 6
ability_label = [u"进攻",u"防守",u"盘带",u"速度",u"体力",u"射术"]

ax1 = plt.subplot(221,projection = "polar")
ax2 = plt.subplot(222,projection = "polar")
ax3 = plt.subplot(223,projection = "polar")
ax4 = plt.subplot(224,projection = "polar")

player = {
    "M": np.random.randint(size=ability_size,low=60,  high=99),
    "H": np.random.randint(size=ability_size, low=60, high=99),
    "P": np.random.randint(size=ability_size, low=60, high=99),
    "Q": np.random.randint(size=ability_size, low=60, high=99)
}

theta = np.linspace(0,2*np.pi,6,endpoint=False)
theta = np.append(theta,theta[0])

player["M"] = np.append(player["M"],player["M"][0])
ax1.plot(theta,player["M"],"r")
ax1.fill(theta,player["M"],"r",alpha=0.5)
ax1.set_xticks(theta)
ax1.set_xticklabels(ability_label,y=0.1,size=12)
ax1.set_title(u"梅西",size=18,position = (0.5,0.95))
ax1.set_yticks([20,40,60,80,100])

player["H"] = np.append(player["H"],player["H"][0])
ax2.plot(theta,player["H"],"g")
ax2.fill(theta,player["H"],"g",alpha=0.5)
ax2.set_xticks(theta)
ax2.set_xticklabels(ability_label,y=0.1,size=12)
ax2.set_title(u"哈维",size=18,position = (0.5,0.95))
ax2.set_yticks([20,40,60,80,100])


player["P"] = np.append(player["P"],player["P"][0])
ax3.plot(theta,player["P"],"b")
ax3.fill(theta,player["P"],"b",alpha=0.5)
ax3.set_xticks(theta)
ax3.set_xticklabels(ability_label,y=0.1,size=12)
ax3.set_title(u"皮克",size=18,position = (0.5,0.95))
ax3.set_yticks([20,40,60,80,100])


player["Q"] = np.append(player["Q"],player["Q"][0])
ax4.plot(theta,player["Q"],"y")
ax4.fill(theta,player["Q"],"y",alpha=0.5)
ax4.set_xticks(theta)
ax4.set_xticklabels(ability_label,y=0.1,size=12)
ax4.set_title(u"切赫",size=18,position = (0.5,0.95))
ax4.set_yticks([20,40,60,80,100])

plt.show()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值