у меня есть участок с одной линией, как это:Поворот Matplotlib pyplot с кривым на 90 градусов
import numpy as np
import matplotlib.pyplot as pl
a = np.array([4, 4, 4, 4, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9])
b = np.array([i/len(a) for i in range(1, len(a)+1)])
aa = np.array([i/10 for i in range(40, 91)])
ss = np.array([ 0.06200455, 0.07389492, 0.08721351, 0.10198928, 0.11823225,
0.13593267, 0.15506088, 0.1755675 , 0.19738431, 0.22042543,
0.244589 , 0.26975916, 0.29580827, 0.32259936, 0.34998862,
0.377828 , 0.40596767, 0.43425846, 0.46255411, 0.49071331,
0.51860153, 0.54609255, 0.57306977, 0.5994272 , 0.62507019,
0.64991591, 0.67389356, 0.69694438, 0.71902138, 0.74008905,
0.76012273, 0.77910799, 0.79703987, 0.81392209, 0.82976609,
0.84459023, 0.85841887, 0.87128143, 0.88321163, 0.89424658,
0.90442608, 0.91379189, 0.92238706, 0.93025537, 0.93744079,
0.94398702, 0.94993712, 0.95533313, 0.96021585, 0.96462454,
0.96859684])
pl.scatter(a,b,color = "blue", marker = 'o', s = 20)
pl.plot(aa, ss, 'r-')
и мне нужно, чтобы повернуть его, как это:
ось х должен быть 0-1 (так b
) и у-оси должны быть отсортированы в обратном, такие, как
a2 = sorted(a, reverse = True)
aa2 = sorted(aa, reverse = True)
, так что в основном вращайте его по часовой стрелке и измените порядок по оси x поворотного участка. Моя ближайшая попытка была, как это:
pl.scatter(b,a2,color = "blue", marker = 'o', s = 20)
pl.plot(ss, aa2, 'r-')
но логически кривая техника его подводит вращаться я хотел. Есть идеи?
Я читал this пост, но с небольшой помощью. pl.scatter
кажется оленья кожа имеет orientation
атрибут и scipy.ndimage
retured мне
File "C:\Users\rpaca\Desktop\WinPython-64bit-3.5.2.2\python-3.5.2.amd64\lib\site-packages\scipy\ndimage
\interpolation.py", line 663, in rotate
ix = input.shape[axes[1]]
IndexError: tuple index out of range
Кроме того, в повернутой участке должно быть больше очков я буду добавлять. Поэтому я действительно хочу это сделать, изменив положение точек этой кривой, а не любую туманную функцию. Я использую python 3 в winpython.
Один из лучших ответов, которые я когда-либо читал. Thx много, я полностью забыл посмотреть на эту проблему, как на поворот вокруг точки. В следующий раз я буду мудрее! – Bobesh
Может быть, один вопрос, почему я вращаюсь о происхождении (9,0.5)? – Bobesh
Вам не обязательно. Любое другое происхождение тоже хорошо, но поскольку ваши первоначальные значения y как-то между 0 и 1, я думал, что вы хотите, чтобы они были в том же диапазоне после вращения, что делается с использованием 0.5 в качестве центра. – ImportanceOfBeingErnest