Вы можете использовать что-то вроде этого для PHP:
if(strpos('xyz',$v[0])===false)//example 1
//strpos returns false when the letter isn't in the string
//returns the position (0 based) of the substring
//we must use a strict comparison to see if it isn't in the substring
if(!in_array($v[0],array('x','y','z')))//example 2
//example 3
$out=array('x'=>1,'y'=>1,'z'=>1); //create an array
if(!$out[$v[0]]) //check if it's not 1
if(!preg_match('/^[xyz]$/',$v))//example 4, using regex
if(str_replace(array('x','y','z'),'',$v[0]))//example 5
if(trim($v[0],'xyz'))//example 6
Для Javascript:
if(~'xyz'.search(v[0]))//example 1(.indexOf() works too)
if(!(v[0] in {x:0,y:0,z:0}))//example 2
if(~['x','y','z'].indexOf(v[0]))//example 3, incompatible with older browsers.
if(!/^[xyz]$/.match(v))//example 4
if(v.replace(/^[xyz]$/))//example 5
Для MySQL:
Select not locate(@v,'xyz'); -- example 1
select @v not in ('x','y','z'); -- example 2
-- repetition of the same pattern for the others
Для C:
if(!strstr('xyz',v))//example 1, untested
Есть больше способов, я просто слишком ленив.
Используйте свое воображение и просто напишите то, что вам нравится больше!
Сначала вы должны преобразовать свои метки времени в объекты Python datetime
(используйте datetime.strptime
). Затем используйте date2num
, чтобы преобразовать даты в формат matplotlib.
Настройте даты и значения с помощью plot_date
:
dates = matplotlib.dates.date2num(list_of_datetimes)
matplotlib.pyplot.plot_date(dates, values)
7 лет спустя, и этот код мне помог. Однако, мои времена все еще не отображались правильно.
Используя Matplotlib 2.0.0, и мне пришлось добавить следующий бит кода из Редактирование форматирования даты меток по типу x в matplotlib Paul H.
import matplotlib.dates as mdates
myFmt = mdates.DateFormatter('%d')
ax.xaxis.set_major_formatter(myFmt)
Я изменил формат на (% H:% M) и отображаемое время правильно.
Все благодаря сообществу.
У меня возникли проблемы с использованием версии matplotlib: 2.0.2. Завершив пример сверху, я получил центрированный набор пузырей.
[/g0]
Я «исправил» проблему, добавив еще одну строку:
plt.plot([],[])
Весь фрагмент кода становится:
import datetime
import random
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
# make up some data
x = [datetime.datetime.now() + datetime.timedelta(minutes=i) for i in range(12)]
y = [i+random.gauss(0,1) for i,_ in enumerate(x)]
# plot
plt.plot([],[])
plt.scatter(x,y)
# beautify the x-labels
plt.gcf().autofmt_xdate()
myFmt = mdates.DateFormatter('%H:%M')
plt.gca().xaxis.set_major_formatter(myFmt)
plt.show()
plt.close()
Это создает изображение с пузырьками, распределенными по желанию.
[/g1]
Вы также можете построить парную метку, пары значений, используя pyplot.plot (после разбора их из строкового представления). (Протестировано с версиями matplotlib 1.2.0 и 1.3.1.)
Пример:
import datetime
import random
import matplotlib.pyplot as plt
# make up some data
x = [datetime.datetime.now() + datetime.timedelta(hours=i) for i in range(12)]
y = [i+random.gauss(0,1) for i,_ in enumerate(x)]
# plot
plt.plot(x,y)
# beautify the x-labels
plt.gcf().autofmt_xdate()
plt.show()
Результирующее изображение:
[/g2]
Вот то же самое, что и график рассеяния:
import datetime
import random
import matplotlib.pyplot as plt
# make up some data
x = [datetime.datetime.now() + datetime.timedelta(hours=i) for i in range(12)]
y = [i+random.gauss(0,1) for i,_ in enumerate(x)]
# plot
plt.scatter(x,y)
# beautify the x-labels
plt.gcf().autofmt_xdate()
plt.show()
Производит изображение, подобное этому:
plot
на scatter
).
– moooeeeep
10 February 2014 в 10:02
Type Error - invalid type promotion
.
– dwanderson
5 October 2016 в 16:21
datetime.datetime
по оси x для моего сообщения.
– moooeeeep
6 October 2016 в 07:26
matplotlib.__version__
2.2.2. Тем не менее, график рассеяния имеет некоторые слишком широкие пределы х, установленные по умолчанию. Этот ответ, похоже, обеспечивает обходное решение, отличное от ручной настройки plt.xlim(...)
: stackoverflow.com/a/46467896/1025391
– moooeeeep
14 August 2018 в 14:08
scatter_date()
и нет очевидного / прямого способа получить этот график. – dwanderson 5 October 2016 в 16:23