Я пытаюсь представить свой 3D-график с указанием цвета c единиц.
Создание 3D-графика с использованием всего 3 столбцов, импортированных из excel, работало нормально. Затем в документе Excel я разбил столбец y на 8 отдельных столбцов, пронумерованных от I до VIII.
Теперь в этих отдельных столбцах много # N / A, поскольку я извлекаю данные из исходного столбца y (см. Рисунок ниже). Я не уверен, является ли это источником проблемы, поскольку, когда я рисую единый трехмерный график вместо того, чтобы надеяться увидеть красочные кластеры трехмерных данных, это в основном двухмерный график (см. Рисунки ниже).
Я добавлю свой код ниже и приложу скриншоты исходного 3D-графика, единичного вывода и Excel do c для справки.
from pandas import DataFrame
import pandas as pd
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
filename = r'CPT.xlsm'
df = pd.read_excel(filename)
QtnI = list(df['I'])
QtnII = list(df['II'])
QtnIII = list(df['III'])
QtnIV = list(df['IV'])
QtnV = list(df['V'])
QtnVI = list(df['VI'])
QtnVII = list(df['VII'])
QtnVIII = list(df['VIII'])
fric = list(df['Fric'])
Bq = list(df['Bq'])
print(QtnIV)
xI = (fric)
yI = (QtnI)
zI = (Bq)
xII = (fric)
yII = (QtnII)
zII = (Bq)
xIII = (fric)
yIII = (QtnIII)
zIII = (Bq)
xIV = (fric)
yIV = (QtnIV)
zIV = (Bq)
xV = (fric)
yV = (QtnV)
zV = (Bq)
xVI = (fric)
yVI = (QtnVI)
zVI = (Bq)
xVII = (fric)
yVII = (QtnVII)
zVII = (Bq)
xVIII = (fric)
yVIII = (QtnVIII)
zVIII = (Bq)
ax.scatter(xI,yI,zI, c='m', marker='o')
ax.scatter(xII,yII,zII, c='k', marker='o')
ax.scatter(xIII,yIII,zIII, c='c', marker='o')
ax.scatter(xIV,yIV,zIV, c='r', marker='o')
ax.scatter(xV,yV,zV, c='g', marker='o')
ax.scatter(xVI,yVI,zVI, c='b', marker='o')
ax.scatter(xVII,yVII,zVII, c='y', marker='o')
ax.scatter(xVIII,yVIII,zVIII, c='m', marker='o')
ax.set_xlabel('Friction Ratio [%]')
ax.set_ylabel('Qtn [-]')
ax.set_zlabel('Bq [-]')
plt.show()