python-3.x - 更高效的多变量可视化
问题描述
嗨,这是一个带有 6 维数据集的示例代码。
import matplotlib.pyplot as plt
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import pandas as pd
import seaborn as sns
def f(a,b,c,d,e):
return a*b*c*d*e/1e14
# characteristics
a=np.arange(1000,11000,1000)
b=np.arange(45,100,10)
c=np.arange(10000,60000,5000)
d=np.arange(1,6,.5)*1000
e=np.array([1,2])
gr=np.array(np.meshgrid(a,b,c,d,e)).T.reshape(-1,5)
cost=np.array([f(*j) for j in gr])
df=pd.DataFrame(np.column_stack([gr,cost]),columns=['a','b','c','d','e','cost'])
我想研究数据中可能的趋势。例如,我想知道“a”对“成本”的影响,同时保持其余列不变等。有没有比这更好的从数据中获得洞察力的方法?
fig = plt.figure(figsize=[10,8])
ax = Axes3D(fig)
temp=df[(df.a==4000) & (df.d==1000)]
ax.plot_trisurf(temp.b, temp.c, temp.cost, cmap=cm.jet, linewidth=0.2)
ax.set_xlabel('b', fontsize=16)
ax.set_ylabel('c', fontsize=16)
ax.set_zlabel('cost', fontsize=16)
我也尝试过这些,但不清楚它们的含义。例如,在这种情况下,成本变量对的热图中不应该所有相关值都相等吗?
# Various visualizaiton methods
#a)
f, ax = plt.subplots(figsize=(10, 6))
corr = df.corr()
hm = sns.heatmap(round(corr,2), annot=True, ax=ax, cmap="coolwarm",fmt='.2f',
linewidths=.05)
f.subplots_adjust(top=0.93)
#b)
pd.plotting.scatter_matrix(df, alpha=0.2, figsize=(16, 16))
解决方案
推荐阅读
- python - 从 pandas df 中删除行
- php - 类别页面返回 recv() 失败(104:连接重置..) Magento 1.9 multistore + nginx | php7.1 每分钟
- php - php表单到电子邮件中的html表格
- javascript - 如何使用 react-pose 实现动画刻度线?
- ios - 如何获取密钥的值并完成我的委托
- .net - dot Net 应用程序与 Zoho Desk 之间的集成?
- keras - U-net最终层
- c++ - 格式化宏以使用单行 if 语句
- css - Visual Studio 警告:.less 文件中未声明的 mixin
- ruby-on-rails - Rails 与迁移的递归关联