import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
raw_data={'水果':['香蕉','苹果','草莓'],
'价格':[2,4,10],
'数量':[5,3,6]}
df=pd.DataFrame(raw_data)
pos=list(range(len(df['水果'])))
width=0.25
# 设置字体,不设置不能显示中文字体
plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定字体
# 做题
plt.bar([p-width/2 for p in pos],df['价格'],width,color='#FFCCCC',label=df['水果'][0])
plt.bar([p+width/2 for p in pos],df['数量'],width,color='#6699CC',label=df['水果'][1])
# 中文标示
plt.xticks(np.linspace(0,2,3),df['水果'])
# 表示图例
plt.legend(['价格','数量'],loc='upper left')
plt.show()
利用“人力资源分析数据集”(提取码:4nfo)
对环境的满意度(satisfaction_level)
每月加班平均时间(average_montly_hours)
对现有的项目的满意度(last_evaluation)
请你利用散点图挖掘出员工对环境满意度和其每月加班平均时间的关系
# 利用散点图挖掘出员工对环境满意度和其每月加班平均时间的关系
import matplotlib.pyplot as plt
from sklearn.utils import *
import pandas as pd
import numpy as np
hr_data=pd.read_csv('..\data\human_one\HR_comma_sep.csv')
print(hr_data.shape)
# print(hr_data.head())
# 打乱数据的序列
data=shuffle(hr_data).iloc[:200,:]
# 生成数据每月加班时间和环境满意度
x=data['average_montly_hours'].tolist()
y=data['satisfaction_level'].tolist()
t=np.arctan2(y,x)#用来显示颜色
# 绘制散点图
plt.scatter(x,y,c=t)
plt.show()
针对“人力资源分析数据集”(提取码:4nfo),挖掘对现有的项目的满意度和月平均加班时间之间的关系;并将此图和上图合并显示
# 利用散点图挖掘出员工对环境满意度和其每月加班平均时间的关系
# 对现有的项目的满意度和月平均加班时间之间的关系
import matplotlib.pyplot as plt
from sklearn.utils import *
import pandas as pd
import numpy as np
import matplotlib.gridspec as gridspec
hr_data=pd.read_csv('..\data\human_one\HR_comma_sep.csv')
print(hr_data.shape)
# print(hr_data.head())
# 打乱数据的序列
data=shuffle(hr_data).iloc[:200,:]
# 生成数据每月加班时间和环境满意度
x=data['average_montly_hours'].tolist()
y1=data['satisfaction_level'].tolist()
y2=data['last_evaluation'].tolist()
t1=np.arctan2(y1,x)#用来显示颜色
t2=np.arctan2(y2,x)
# 绘制散点图
plt.figure(figsize=(8,4))
gs=gridspec.GridSpec(1,2)
ax1=plt.subplot(gs[0,0])
ax2=plt.subplot(gs[0,1])
ax1.scatter(x,y1,c=t1)
ax2.scatter(x,y2,c=t2)
ax1.set_xlabel('average_montly_hours')
ax1.set_ylabel('satisfaction_level')
ax2.set_xlabel('average_montly_hours')
ax2.set_ylabel('last_evaluation')
plt.show()
请在3D坐标系下画出函数Z=3 (1-X)2 np.e(-(X2) - (Y+1)2)- 10(X/5 - X3 - Y5)np.e(-X2-Y2)- 1/3np.e(-(X+1)2 - Y*2);并将其投影至 x=-4 和 z=-7 平面上;并添加colorbar
# 请在3D坐标系下画出函数Z=3 (1-X)**2 np.e(-(X2) - (Y+1)2)- 10*(X/5 - X3 - Y5)*np.e(-X2-Y2)- 1/3*np.e(-(X+1)2 - Y**2);
# 并将其投影至 x=-4 和 z=-7 平面上;并添加colorbar
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
x=np.arange(-4,4,0.25)
y=np.arange(-4,4,0.25)
# xy编织成网
x,y=np.meshgrid(x,y)
z=3*(1-x)**2*np.e**(-(x**2)-(y+1)**2)-10*(x/5-x**3-y**5)*np.e**(-x**2-y**2)- 1/3*np.e**(-(x+1)**2-y**2)
# 制作3d图
fig=plt.figure()
ax=Axes3D(fig)
m=ax.plot_surface(x,y,z,rstride=1,cstride=1,cmap=plt.get_cmap('Spectral'))
# plt.show()
#显示投影
ax.contourf(x,y,z,zdir='x',offset=-4)
ax.contourf(x,y,z,zdir='z',offset=-7)
# plt.show()
# 添加colorbar
plt.colorbar(m,shrink=.6)
plt.show()
附 :cmap的类型
实际上,画图的工具有很多,matplotlib知识其中的一种,目前为止我们所学到的知识可以帮助我们完成实际工程应用中的大部分画图任务,但如果想要追求更加完美的画图效果,大家可以参考一个工具:Seaborn,它在matplotlib基础上进行了更高级的封装,利用它我们可以更加方便的作出更有吸引力的图。
自学自用,matplotlib的学习到现在即将告一段落,希望可以和大家积极沟通交流,小伙伴们加油鸭,如有错误还请指正,不喜勿喷