目录
1.绘制概率图
2.绘制雷达图
3.绘制流向图
4.绘制极坐标图
5.绘制词云图
1.绘制概率图
from scipy.stats import norm
fig,ax = plt.subplots()
plt.rcParams['font.family'] = ['SimHei']
np.random.seed()
mu = 100
sigma = 15
x = mu+sigma*np.random.randn(437)
num_bins = 50
n,bins,patches = ax.hist(x,num_bins,density = 1,color='c')
y=norm.pdf(bins,mu,sigma)
ax.plot(bins,y,'r--')
fig.tight_layout()
plt.show()
结果图:
2.绘制雷达图
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
# 某学生的课程与成绩
courses = ['数据结构', '数据可视化', '高数', '英语', '软件工程', '组成原理', 'C语言', '体育']
scores = [82, 95, 78, 85, 45, 88, 76, 88]
dataLength = len(scores) # 数据长度
# angles数组把圆周等分为dataLength份
angles = np.linspace(0, 2*np.pi, dataLength, endpoint=False)
courses.append(courses[0])
scores.append(scores[0])
angles = np.append(angles,angles[0]) # 闭合
# 绘制雷达图
plt.polar(angles, # 设置角度
scores, # 设置各角度上的数据
'bv--', # 设置颜色、线型和端点符号
linewidth=2) # 设置线宽
# 设置角度网格标签
plt.thetagrids(angles*180/np.pi, courses, fontproperties='simhei', fontsize=12)
# 填充雷达图内部
plt.fill(angles, scores, facecolor='g', alpha=0.2)
plt.show()
结果图:
3.绘制流向图
import numpy as np
import matplotlib.pyplot as plt
Y, X = np.mgrid[-3:3:100j, -3:3:100j]
U = -1 - X**2 + Y
V = 1 + X - Y**2
speed = np.sqrt(U*U + V*V)
plt.streamplot(X, Y, U, V, color=U, linewidth=2, cmap=plt.cm.autumn)
plt.colorbar()
f, (ax1, ax2) = plt.subplots(ncols=2)
ax1.streamplot(X, Y, U, V, density=[0.5, 1])
lw = 5*speed/speed.max()
ax2.streamplot(X, Y, U, V, density=0.6, color='k', linewidth=lw)
plt.show()
结果图:
4.绘制极坐标图
r = np.linspace(0, 2, 100)
theta = 2 * np.pi * r
fig = plt.figure(figsize=(13, 4))
ax1 = plt.subplot(121, projection='polar')
ax1.scatter(theta, r, label = 'Polar Projection', s = 10)
ax1.legend(bbox_to_anchor = (0.85, 1.35))
ax2 = plt.subplot(122)
ax2.scatter(theta, r, label = 'Planar Projection', s = 5)
ax2.legend(bbox_to_anchor = (0.85, 1.35))
ax2.set_xlabel('R')
ax2.set_ylabel(r'$\theta$')
结果图:
5.绘制词云图
import matplotlib.pyplot as plt
from wordcloud import WordCloud,STOPWORDS
# from pyecharts.charts import WordCloud
import PIL.Image as image
import numpy as np
def get_wordList():
f = open("data//text.txt")
wordList = f.read()
return wordList
def get_wordClound(mylist):
pic_path = 'data//myimg.jpg'
img_mask = np.array(image.open(pic_path))
wordcloud = WordCloud(background_color="white",mask=img_mask).generate(mylist)
plt.imshow(wordcloud)
plt.axis("off")
wordList = get_wordList()
get_wordClound(wordList)
结果图: