Saya mengalami kesulitan mendapatkan kode berikut untuk menampilkan diagram batang dengan benar. Plotnya memiliki garis yang sangat tipis dan tidak terlihat sampai Anda memperbesar, itupun tidak jelas. Saya sudah mencoba mengontrol dengan opsi lebar ke plt.bar tetapi tidak melakukan apa-apa (mis. mencoba 0,1, 1, 365).

Setiap petunjuk tentang apa yang saya lakukan salah akan dihargai.

Terimakasih banyak

import pandas as pd
import numpy as np
import matplotlib.pylab as plt
import matplotlib.dates as mdates

plt.close('all')

mydateparser2 = lambda x: pd.datetime.strptime(x, "%m/%d/%Y")
colnames2=['Date','Net sales', 'Cost of sales']
df2 = pd.read_csv(r'account-test.csv', parse_dates = ['Date'] , date_parser = mydateparser2, index_col='Date')
df2= df2.filter(items=colnames2)
df2 = df2.sort_values('Date')

print (df2.info())
print (df2)

fig = plt.figure()

plt.bar(df2.index.values, df2['Net sales'], color='red', label='Net sales'  )
plt.ylim(500000,2800000)
plt.show()
plt.legend(loc=4)

Output yang dihasilkan (untuk menampilkan tipe data)

<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 15 entries, 2005-12-31 to 2019-12-31
Data columns (total 2 columns):
Net sales        15 non-null int64
Cost of sales    15 non-null int64
dtypes: int64(2)
memory usage: 360.0 bytes
None
            Net sales  Cost of sales
Date                                
2005-12-31    1161400         907200
2006-12-31    1193100         928300
2007-12-31    1171100         888100
2008-12-31    1324900        1035700
2009-12-31    1108300         859800
2010-12-31    1173600         891000
2011-12-31    1392400        1050300
2012-12-31    1578200        1171500
2013-12-31    1678200        1224200
2014-12-31    1855500        1346700
2015-12-31    1861200        1328400
2016-12-31    2004300        1439700
2017-12-31    1973300        1421500
2018-12-31    2189100        1608300
2019-12-31    2355700        1715300
1
sach 2 Juli 2020, 21:50

1 menjawab

Jawaban Terbaik

Mungkin Anda mencoba membuat plot terlalu banyak bar di plot kecil. Coba fig = plt.figure(figsize=(12,6) untuk memiliki plot yang lebih besar. Anda juga dapat meneruskan width=0.9 ke perintah bar Anda:

fig, ax = plt.subplots(figsize=(12,6))
df.plot.bar(y='Net sales', width=0.9, ax=ax)  # modify width to your liking

Keluaran:

enter image description here

0
Quang Hoang 2 Juli 2020, 19:15