Python.Plotly) Как данные о 45 столбцах должны быть выражены в одном полярном графике рассеяния с использованием оператора for? - PullRequest
0 голосов
/ 04 сентября 2018

все. Меня спросили, потому что я хотел выразить график, выраженный в градусах, как показано в коде ниже. Ниже значения, относящиеся к столбцу в CSV-файле, отображаются на графике. Но на приведенном ниже графике есть только несколько столбцов, но в моем текущем проекте у нас будет около 45 столбцов. Поэтому, если количество столбцов невелико, я хочу нарисовать график, как показано ниже, но слишком много графиков для рисования. И я написал код, и я не знал, что делать, поэтому я задал вопрос. Что я должен делать?

Если вы посмотрите на код ниже, Это грубая форма кода, используемого для рисования графика, над которым мы сейчас работаем.

import plotly.plotly as py
import plotly.graph_objs as go

import pandas as pd

df = pd.read_csv("https://raw.githubusercontent.com/plotly/datasets/master/hobbs-pearson-trials.csv")


data = [
go.Scatterpolargl(
  r = df.trial_1_r,
  theta = df.trial_1_theta,
  mode = "markers",
  name = "Trial 1",
  marker = dict(
    color = "rgb(27,158,119)",
    size = 15,
    line = dict(
      color = "white"
    ),
    opacity = 0.7
  )
),
go.Scatterpolargl(
  r = df.trial_2_r,
  theta = df.trial_2_theta,
  mode = "markers",
  name = "Trial 2",
  marker = dict(
    color = "rgb(217,95,2)",
    size = 20,
    line = dict(
      color = "white"
    ),
    opacity = 0.7
  )
),
go.Scatterpolargl(
  r = df.trial_3_r,
  theta = df.trial_3_theta,
  mode = "markers",
  name = "Trial 3",
  marker = dict(
    color = "rgb(117,112,179)",
    size = 12,
    line = dict(
      color = "white"
    ),
    opacity = 0.7
  )
),
go.Scatterpolargl(
  r = df.trial_4_r,
  theta = df.trial_4_theta,
  mode = "markers",
  name = "Trial 4",
  marker = dict(
    color = "rgb(231,41,138)",
    size = 22,
    line = dict(
      color = "white"
    ),
    opacity = 0.7
  )
),
go.Scatterpolargl(
  r = df.trial_5_r,
  theta = df.trial_5_theta,
  mode = "markers",
  name = "Trial 5",
  marker = dict(
    color = "rgb(102,166,30)",
    size = 19,
    line = dict(
      color = "white"
    ),
    opacity = 0.7
  )
),
go.Scatterpolargl(
  r = df.trial_6_r,
  theta = df.trial_6_theta,
  mode = "markers",
  name = "Trial 6",
  marker = dict(
    color = "rgb(230,171,2)",
    size = 10,
    line = dict(
      color = "white"
    ),
    opacity = 0.7
  )
)
]

layout = go.Layout(
title = "Hobbs-Pearson Trials",
font = dict(
  size = 15
),
showlegend = False,
polar = dict(
  bgcolor = "rgb(223, 223, 223)",
  angularaxis = dict(
    tickwidth = 2,
    linewidth = 3,
    layer = "below traces"
  ),
  radialaxis = dict(
    side = "counterclockwise",
    showline = True,
    linewidth = 2,
    tickwidth = 2,
    gridcolor = "white",
    gridwidth = 2
  )
),
paper_bgcolor = "rgb(223, 223, 223)"
)

fig = go.Figure(data=data, layout=layout)
py.iplot(fig, filename='polar-webgl')

Это код, который я сейчас использую в своем проекте. Если вы посмотрите на код ниже, вы прочитаете соответствующую информацию из файла CSV. Однако, поскольку он дает 45 столбцов, я работал с Formun. Но из кода, над которым мы работаем, мы задаемся вопросом, как нарисовать один график из 45 столбцов. Что мне делать?

import pandas as pd
import csv
import serial
import time

df = pd.read_csv("C:/Users/Jangsu/Desktop/ssssssssscccc.csv")

data = [
    for i in range(1,46):
        go.Scatterpolar(
        r=df["Save datas(Angle)"+str(i)],
        theta=str(i)+"°",
        mode="marker",
        name="Angle"+str(i)+"°",
        marker = dict(
        color = stored_angle[i]
        size = 15,
        line = dict(
          color = "white"
        ),
        opacity = 0.7
      )
]
layout = go.Layout(
   title = "Hobbs- Trials",
font = dict(
  size = 15
),
showlegend = False,
polar = dict(
  bgcolor = "rgb(255, 255, 255)",
  angularaxis = dict(
    tickwidth = 2,
    linewidth = 3,
    layer = "below traces"
  ),
  radialaxis = dict(
    side = "counterclockwise",
    showline = True,
    linewidth = 2,
    tickwidth = 2,
    gridcolor = "white",
    gridwidth = 2
  )
),
paper_bgcolor = "rgb(223, 223, 223)"
)

fig = go.Figure(data=data, layout=layout)
py.iplot(fig, filename='polar-webgl')

Код выше теперь зависит от меня. Как вы можете нарисовать график из 45 столбцов в том месте, где вы рисуете график? Для вашей информации, вы можете проверить тип графика, который я хочу нарисовать по адресу, который я оставляю. https://plot.ly/python/polar-chart/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...