Конечно, это будет сделано.
#rainbow
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,2*np.pi)
ax= plt.subplot(1,1,1)
ax.plot(np.sin(x))
ax.plot(np.cos(x))
rainbow = ax._get_lines.color_cycle
print rainbow
for i, color in enumerate(rainbow):
if i<10:
print color,
Дает:
r c m y k b g r c m
Вот функция itertools, которую matplotlib использует itertools.cycle
Редактировать: Спасибо за комментарий, кажется, что копировать итератор невозможно. Идея состояла бы в том, чтобы сбрасывать полный цикл и отслеживать, какое значение вы используете, позвольте мне вернуться к этому.
Edit2: Allright, это даст вам следующий цвет и сделает новый итератор, который ведет себя так, как будто следующий не был вызван. Это не сохраняет порядок окраски, просто следующее значение цвета, я оставляю это для вас.
Это дает следующий вывод: обратите внимание, что крутизна графика соответствует индексу, например, первый g является самым нижним граф и т. д.
#rainbow
import matplotlib.pyplot as plt
import numpy as np
import collections
import itertools
x = np.linspace(0,2*np.pi)
ax= plt.subplot(1,1,1)
def create_rainbow():
rainbow = [ax._get_lines.color_cycle.next()]
while True:
nextval = ax._get_lines.color_cycle.next()
if nextval not in rainbow:
rainbow.append(nextval)
else:
return rainbow
def next_color(axis_handle=ax):
rainbow = create_rainbow()
double_rainbow = collections.deque(rainbow)
nextval = ax._get_lines.color_cycle.next()
double_rainbow.rotate(-1)
return nextval, itertools.cycle(double_rainbow)
for i in range(1,10):
nextval, ax._get_lines.color_cycle = next_color(ax)
print "Next color is: ", nextval
ax.plot(i*(x))
plt.savefig("SO_rotate_color.png")
plt.show()
Консоль
Next color is: g
Next color is: c
Next color is: y
Next color is: b
Next color is: r
Next color is: m
Next color is: k
Next color is: g
Next color is: c
[/g1]
] Вы можете использовать NSMutableURLRequest, установить метод HTTP в POST, а затем загрузить его в свой UIWebView с помощью -loadRequest.[
].Можно использовать что-то вроде ASIHTTPRequest, чтобы сделать POST-запрос ( с возможностью делать это асинхронно), а затем загрузить строку/данные ответа в UIWebView. Посмотрите на эту страницу под заголовком Отправка данных с POST или PUT запросами, а затем посмотрите на Создание асинхронного запроса вверху для получения информации о том, как работать со строкой/данными ответа.
Надеюсь, это поможет, простите, если я неправильно понял ваш вопрос.
.Используя loadHTMLString, загрузите страницу в UIWebView, которая имеет скрытую, предварительно заполненную форму, затем заставьте эту страницу выполнить Javascript форму[0].submit() при загрузке.
EDIT: Сначала вы собираете входные данные в переменные. Затем вы сочиняете HTML так:
NSMutableString *s = [NSMutableString stringWithCapacity:0];
[s appendString: @"<html><body onload=\"document.forms[0].submit()\">"
"<form method=\"post\" action=\"http://someplace.com/\">"
"<input type=\"hidden\" name=\"param1\">"];
[s appendString: Param1Value]; //It's your variable
[s appendString: @"</input></form></body></html>"];
Затем добавляете его в WebView:
[myWebView loadHTMLString:s baseURL:nil];
Он заставит WebView загрузить форму, затем немедленно отправить ее, таким образом выполняя POST-запрос на someplace.com (ваш URL будет меняться). Результат появится в WebView.
Специфика формы зависит от вас...
.