Значения, отображаемые на обеих осях X, даже если plt.subplots (sharex = True) - PullRequest
0 голосов
/ 07 ноября 2018

Я работаю с небольшим набором данных о потреблении воды. У меня есть два подзадачи, и я говорю им, чтобы они делили свои оси X, однако графики не отражают этот факт. Я могу использовать plt.subplots (sharex = True) для графиков, когда не использую этот набор данных, что заставляет меня задуматься, если это проблема между библиотеками pandas и matplotlib. Мой код прост и ниже:

import pandas as pd
import matplotlib.pyplot as plt
# Source = https://data.cityofnewyork.us/Environment/Water-Consumption-In-The-New-York-City/ia2d-e54m

data_loc = 'D:\CSVs\Water_Consumption_In_The_New_York_City.csv'
df = pd.read_csv(data_loc, parse_dates=True)
#editing the population data to be per million
df['New York City Population'] = df['New York City Population']/1000000

fig, (ax1,ax2) = plt.subplots(2, figsize=(8,5), sharex = True)
ax1 = plt.subplot(211)
ax1.plot(df['Year'], df['NYC Consumption(Million gallons per day)'])
ax1.legend(['Water Consumption (Million Gallons per Day)'])

ax2 = plt.subplot(212)
ax2.plot(df['Year'], df['New York City Population'], color='red')
ax2.legend(['Population (In Millions)'])
plt.xlabel('Year')

plt.suptitle('NYC Water Consumption Data', size = 15)
plt.show()

Этот код создает эти графики, которые не разделяют одну ось X:

enter image description here

Заранее спасибо

1 Ответ

0 голосов
/ 07 ноября 2018
fig, (ax1,ax2) = plt.subplots(1,2, figsize=(8,5), sharex = True)

- это одна строка и два столбца, поэтому sharex не имеет смысла.

И ax1, ax2 - это вспомогательные участки, поэтому их повторная инициализация не требуется

import pandas as pd
import matplotlib.pyplot as plt

data_loc = 'D:\CSVs\Water_Consumption_In_The_New_York_City.csv'
df = pd.read_csv(data_loc, parse_dates=True)
#editing the population data to be per million
df['New York City Population'] = df['New York City Population']/1000000

fig, (ax1,ax2) = plt.subplots(2, 1, figsize=(8,5), sharex = True)
ax1.plot(df['Year'], df['NYC Consumption(Million gallons per day)'])
ax1.legend(['Water Consumption (Million Gallons per Day)'])

ax2.plot(df['Year'], df['New York City Population'], color='red')
ax2.legend(['Population (In Millions)'])
plt.xlabel('Year')

plt.suptitle('NYC Water Consumption Data', size = 15)
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...