Matplotlib представляет даты как числа с плавающей запятой (в днях), поэтому, если вы (или панды или морские) не говорите, что ваши значения представляют даты, они не будут отформатировать тики в качестве дат. Я не эксперт по морскому дну, но похоже, что он (или панды) преобразует объекты datetime
в даты matplotlib, но затем не назначает правильные локаторы и форматирующие элементы для осей. Вот почему вы получаете эти странные числа , которые на самом деле являются только днями с 0001.01.01.
Таким образом, вам придется назначить локатор даты , который решает, где поставить тики, и форматировщик даты , который затем отформатирует строки для меток тика.
import datetime
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
# build up the data
df = []
start_date = datetime.datetime(2015, 7, 1)
for i in range(10):
for j in [1,2]:
unit = 'Ones' if j == 1 else 'Twos'
date = start_date + datetime.timedelta(days=i)
# I believe it makes more sense to directly convert the datetime to a
# "matplotlib"-date (float), instead of creating strings and then let
# pandas parse the string again
df.append({
'Date': mdates.date2num(date),
'Value': i * j,
'Unit': unit
})
df = pd.DataFrame(df)
# build the figure
fig, ax = plt.subplots()
sns.tsplot(df, time='Date', value='Value', unit='Unit', ax=ax)
# assign locator and formatter for the xaxis ticks.
ax.xaxis.set_major_locator(mdates.AutoDateLocator())
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y.%m.%d'))
# put the labels at 45deg since they tend to be too long
fig.autofmt_xdate()
plt.show()
Результат:
[/g3]
Это работает на меня:
@echo OFF
setlocal ENABLEEXTENSIONS
set KEY_NAME="HKEY_CURRENT_USER\Software\Microsoft\Command Processor"
set VALUE_NAME=DefaultColor
FOR /F "usebackq skip=4 tokens=1-3" %%A IN (`REG QUERY %KEY_NAME% /v %VALUE_NAME% 2^>nul`) DO (
set ValueName=%%A
set ValueType=%%B
set ValueValue=%%C
)
if defined ValueName (
@echo Value Name = %ValueName%
@echo Value Type = %ValueType%
@echo Value Value = %ValueValue%
) else (
@echo %KEY_NAME%\%VALUE_NAME% not found.
)
usebackq
необходим начиная с команды к REG QUERY
двойные кавычки использования.
skip=4
игнорирует весь вывод за исключением строки, которая имеет имя значения, введите и оцените, если это существует.
2^>nul
препятствует тому, чтобы текст ошибки появился. ^
символ ESC, который позволяет Вам поместить >
в эти for
команда.
, Когда я выполняю сценарий выше, как дали, я получаю этот вывод:
Value Name = DefaultColor
Value Type = REG_DWORD
Value Value = 0x0
, Если я изменяю значение [1 110] к [1 111] тогда, я получаю это:
"HKEY_CURRENT_USER\Software\Microsoft\Command Processor"\BogusValue not found.
Спасибо, я просто должен использовать:
SETLOCAL EnableExtensions
И помещенный a:
2^>nul
В QUERY REG, названную в команде FOR. Большое спасибо снова!:)