Разбиение трехмерных графиков на единицы - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь представить свой 3D-график с указанием цвета c единиц.

Создание 3D-графика с использованием всего 3 столбцов, импортированных из excel, работало нормально. Затем в документе Excel я разбил столбец y на 8 отдельных столбцов, пронумерованных от I до VIII.

Теперь в этих отдельных столбцах много # N / A, поскольку я извлекаю данные из исходного столбца y (см. Рисунок ниже). Я не уверен, является ли это источником проблемы, поскольку, когда я рисую единый трехмерный график вместо того, чтобы надеяться увидеть красочные кластеры трехмерных данных, это в основном двухмерный график (см. Рисунки ниже).

Я добавлю свой код ниже и приложу скриншоты исходного 3D-графика, единичного вывода и Excel do c для справки.

3d plot with units but incorrectly plotting

3D plot with no units

screenshot of excel columns

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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...