Я создаю график XY из двух значений и закрашиваю их на основе временных меток. Я пытаюсь редактировать метки/галочки на цветовой панели, но когда я редактирую метки, я либо теряю цветовую панель, либо метки отображаются неправильно, либо и то, и другое. В идеале я хочу создать примерно 6 тиков на основе времени начала и окончания отображаемых данных.
введите здесь описание изображения
код В настоящее время я использую:
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import numpy as np
# Generate a range of timestamps
start_date = '2023-01-01'
end_date = '2023-01-31'
timestamps = pd.date_range(start=start_date, end=end_date, freq='h') # hourly frequency
# Generate random numbers
np.random.seed(0) # for reproducibility
random_numbers1 = np.random.rand(len(timestamps))
random_numbers2 = np.random.rand(len(timestamps))
# Create a DataFrame with the generated data
df = pd.DataFrame({
'Timestamp': timestamps,
'RandomValue1': random_numbers1,
'RandomValue2': random_numbers2
})
# Convert the Timestamp column to datetime format
df['Timestamp'] = pd.to_datetime(df['Timestamp'])
# Create the plot
plt.figure(figsize=(10, 6))
sc = plt.scatter(df['RandomValue1'], df['RandomValue2'], c=df['Timestamp'], cmap='viridis', alpha=0.5)
cbar = plt.colorbar(sc, label='Time')
plt.xlabel('Random Values')
plt.ylabel('Random Values')
plt.title(f'Plot of Random Values shaded by Time')
# Convert timestamps to numerical values
num_timestamps = mdates.date2num(df['Timestamp'])
# Customize the colorbar ticks and labels to reflect timestamps
num_ticks = 6 # Number of ticks you want on the colorbar
ticks = pd.date_range(start=df['Timestamp'].min(), end=df['Timestamp'].max(), periods=num_ticks)
cbar.set_ticks(mdates.date2num(ticks))
cbar.set_ticklabels([tick.strftime('%Y-%m-%d %H:%M') for tick in ticks])
plt.show()
Подробнее здесь: https://stackoverflow.com/questions/793 ... b-colorbar
Редактирование меток для цветовой панели matplotlib ⇐ Python
Программы на Python
-
Anonymous
1735045698
Anonymous
Я создаю график XY из двух значений и закрашиваю их на основе временных меток. Я пытаюсь редактировать метки/галочки на цветовой панели, но когда я редактирую метки, я либо теряю цветовую панель, либо метки отображаются неправильно, либо и то, и другое. В идеале я хочу создать примерно 6 тиков на основе времени начала и окончания отображаемых данных.
введите здесь описание изображения
код В настоящее время я использую:
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import numpy as np
# Generate a range of timestamps
start_date = '2023-01-01'
end_date = '2023-01-31'
timestamps = pd.date_range(start=start_date, end=end_date, freq='h') # hourly frequency
# Generate random numbers
np.random.seed(0) # for reproducibility
random_numbers1 = np.random.rand(len(timestamps))
random_numbers2 = np.random.rand(len(timestamps))
# Create a DataFrame with the generated data
df = pd.DataFrame({
'Timestamp': timestamps,
'RandomValue1': random_numbers1,
'RandomValue2': random_numbers2
})
# Convert the Timestamp column to datetime format
df['Timestamp'] = pd.to_datetime(df['Timestamp'])
# Create the plot
plt.figure(figsize=(10, 6))
sc = plt.scatter(df['RandomValue1'], df['RandomValue2'], c=df['Timestamp'], cmap='viridis', alpha=0.5)
cbar = plt.colorbar(sc, label='Time')
plt.xlabel('Random Values')
plt.ylabel('Random Values')
plt.title(f'Plot of Random Values shaded by Time')
# Convert timestamps to numerical values
num_timestamps = mdates.date2num(df['Timestamp'])
# Customize the colorbar ticks and labels to reflect timestamps
num_ticks = 6 # Number of ticks you want on the colorbar
ticks = pd.date_range(start=df['Timestamp'].min(), end=df['Timestamp'].max(), periods=num_ticks)
cbar.set_ticks(mdates.date2num(ticks))
cbar.set_ticklabels([tick.strftime('%Y-%m-%d %H:%M') for tick in ticks])
plt.show()
Подробнее здесь: [url]https://stackoverflow.com/questions/79305670/editing-the-labels-for-a-matplotlib-colorbar[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия