Charts: рдмрд╛рд░ рдЪрд╛рд░реНрдЯ рдирд╣реАрдВ рджрд┐рдЦрд╛ рд░рд╣реЗ рдмрд╛рд░

рдХреЛ рдирд┐рд░реНрдорд┐рдд 29 рдЕрдХреНрддреВре░ 2016  ┬╖  24рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: danielgindi/Charts

рдирдорд╕реНрддреЗ,

3.0 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ, рдореБрдЭреЗ рдмрд╛рд░ рдЪрд╛рд░реНрдЯ рдореЗрдВ рдмрд╛рд░ рди рджрд┐рдЦрдиреЗ рд╕реЗ рдкрд░реЗрд╢рд╛рдиреА рд╣реЛ рд░рд╣реА рд╣реИред

рдПрдХ рдмрд╛рд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдмрд┐рдВрджреБ рд╣реИред рдЕрдЧрд░ рдореИрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд┐рдВрджреБ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ рддреЛ рдмрд╛рд░ рдирд╣реАрдВ рджрд┐рдЦрддреЗ рд╣реИрдВред
рдпрд╣ рддрднреА рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЬрдм xaxis рдореЗрдВ рддрд┐рдерд┐рдпрд╛рдВ рд╣реЛрдВред рдЕрдЧрд░ рдореИрдВ рддрд╛рд░реАрдЦреЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдкреВрд░реНрдгрд╛рдВрдХ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдХреГрдкрдпрд╛ рд╕рдВрд▓рдЧреНрди рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рджреЗрдЦреЗрдВред

рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рдирдореВрдирд╛ рдЗрд╕ рдХреЗ рд╕рдорд╛рди рд╣реЛрдЧрд╛
{
"09/04/2012": "245",
"02/05/2013": "227",
"04/07/2013':"234",
"07/08/2015": "244",
"10/11/2016": "2254"
}

рдзрдиреНрдпрд╡рд╛рдж,
рдмреАрдУрдмреА

1

рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджреЗрдЦрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдмрд╛рд░ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣реЗ рд╣реИрдВ? рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдХрд╛рд░рдг рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ?
2

bug discussion enhancement тШЕтШЕтШЕ

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдереА рдФрд░ рдПрдХреНрд╕-рдЕрдХреНрд╖ рдХреА рд╕реАрдорд╛ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдореЗрд░реЗ рдмрд╛рд░ рдХреЛ рд╕рд╣реА рдЖрдХрд╛рд░ рдореЗрдВ рд╕реЗрдЯ рдХрд░рдХреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛:

let data = BarChartData(dataSets: [dataSet])

let dataSetRange = dataSet.xMax - dataSet.xMin
let availableSpacePerBar = dataSetRange / Double(dataSet.entryCount)
data.barWidth = availableSpacePerBar * 0.8 // 80% of available space

chartView.data = data

рд╕рднреА 24 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдЗрд╕рдХрд╛ рдХреЛрдИ рд╣рд▓ рд╣реИ?
рдпрд╣ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 3.0 рдореЗрдВ рдмрд╛рд░ рдЧрд╛рдпрдм рд╣реИрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдпрд╛ рддреЛ рдХреЙрд▓ рдорд┐рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдпрд╛ рдХреБрдЫ рд╕реЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЕрдЧрд░ рдЗрд╕рдХрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╣реИ рддреЛ рдпрд╣ рдмрд╣реБрдд рдорджрджрдЧрд╛рд░ рд╣реЛрдЧрд╛ред

рдзрдиреНрдпрд╡рд╛рдж,
рдмреАрдУрдмреА

рдЖрдк рдЗрд╕реЗ рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ? рдЪрд╛рд░реНрдЯ 3.0 рдиреЗ x рдЕрдХреНрд╖ рдХреЛ рдлрд┐рд░ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдмрд╣реБрдд рд╕реА рдЪреАрдЬрд╝реЗрдВ рдмрджрд▓ рдЧрдИ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЕрдкрдирд╛ рдХреЛрдб рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдЕрдиреБрдкрд▓рдмреНрдз рд╣реЛред рдЕрднреА рдХреЗ рд▓рд┐рдП, рдХреГрдкрдпрд╛ рд╡рд┐рднрд┐рдиреНрди рдмрд╛рд░ рдЪрд╛рд░реНрдЯ рдбреЗрдореЛ рдХреЗ рд▓рд┐рдП рдЪрд╛рд░реНрдЯреНрд╕рдбреЗрдореЛ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред

рдореИрдВ рдлрд┐рд░ рд╕реЗ рдбреЗрдореЛ рдЪрд╛рд░реНрдЯ рдЪрд▓рд╛рдКрдВрдЧрд╛ рдФрд░ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдЕрдиреНрдп рдореБрджреНрджреЗ # 1716 рдХреЗ рд╕рдорд╛рди рд╣реИред

рдПрдХ рдмрд╛рд░ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдХреБрдЫ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдФрд░ рдЪрд╛рд░реНрдЯреНрд╕ рдбреЗрдореЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж рдореИрдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд╛рдкрд╕ рдЖрддрд╛ рд╣реВрдБред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ x- рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдзрдиреНрдпрд╡рд╛рдж,
рдмреАрдУрдмреА

рдореБрдЭреЗ рднреА рдпрд╣реА рддрдХрд▓реАрдлрд╝ рд╣реИред рдореЗрд░рд╛ рдПрдХреНрд╕-рдЕрдХреНрд╖ рджрд┐рдирд╛рдВрдХ YYYY-MM-DD рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдмрд╛рд░ рдЕрджреГрд╢реНрдп рд╣реИрдВред

@ рд▓рд┐рдХреНрд╕реБрдЖрди 30 ,
рдпрд╣рд╛рдВ рдореИрдВрдиреЗ рдореВрд▓ рд░реВрдк рд╕реЗ рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ ... рдореИрдВрдиреЗ рдЪрд╛рд░реНрдЯреНрд╕рдбреЗрдореЛ рдореЗрдВ 3.0 рдореЗрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХрд┐рдП рд╣реИрдВ рдФрд░ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╡рд╣реА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ ...

рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдПред рдПрдХреНрд╕ рдорд╛рди рдбрдмрд▓ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдореИрдВ 1 9 70 рд╕реЗ рдбреЗрдЯрд╛рдЯрд╛рдЗрдо рдЬреЛрдбрд╝ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рддрд┐рдерд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдбрдмрд▓ рдорд╛рди рд╣реИред
рдПрдХ dd / MM рдХреЗ xaxis рдлреЙрд░реНрдореИрдЯрд░ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ред

рд╕рд╛рде рд╣реА BarChartViewController.m рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╕рдВрд▓рдЧреНрди рдХрд░рдХреЗ рдЖрдк рдЗрд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдиреАрдЪреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рджреЗрдЦреЗрдВред
simulator screen shot nov 1 2016 12 22 47 am

BarChartViewController.m.zip

рдпрд╛ рддреЛ рдореБрдЭреЗ рдХреБрдЫ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдпрд╣ рдПрдХ рдмрдЧ рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж,
рдмреАрдУрдмреА

рдирдорд╕реНрддреЗ, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдХреНрдпреЛрдВ рдмрдВрдж рд╣реИ, рд▓реЗрдХрд┐рди рдЙрди рд╕рднреА рд▓реЛрдЧреЛрдВ рдХреА рддрд░рд╣ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдпрд╣рд╛рдВ рдФрд░ https://github.com/danielgindi/Charts/issues/1716 рдореЗрдВ рд▓рдХреНрд╖рдгреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рд╣реИ, рдореИрдВ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рд╣реА рдмрдЧ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдПрдХреНрд╕-рдЕрдХреНрд╖ рд╕рдордп рдЕрдВрддрд░рд╛рд▓ рдЬреИрд╕реЗ рдмрдбрд╝реЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓ рдирд╣реАрдВ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдЪрд╛рд░реНрдЯ рдХреЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЛ рдЧрдбрд╝рдмрдбрд╝ рдХрд░ рджреЗрддрд╛ рд╣реИред

@sjuvvalapalem рдореВрд▓ рдЪрд╛рд░реНрдЯрдбреЗрдореЛ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдореИрдВ рдЖрдкрдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ред рдЪрд╛рд░реНрдЯ 3.0 рдореЗрдВ, x рдорд╛рди рд╣рдореЗрд╢рд╛ рджреБрдЧреБрдиреЗ рд╣реЛрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдиреЗ рдХреБрдЫ рднреА рдмрджрд▓рд╛ рд╣реИ, рддреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рд╕рднреА рд╕рдВрдмрдВрдзрд┐рдд рдХреНрд╖реЗрддреНрд░ рдХреЛ рдмрджрд▓ рджреЗрдВред рдЖрдк рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рдмрд╛рд░ рдЧрд╛рдпрдм рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдмрд╛рд░ рдЪрд╛рд░реНрдЯ рд░реЗрдВрдбрд░рд░ рдореЗрдВ drawDataSets рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдкрдиреА рддрд░рдл рд╕реЗ рдбрд┐рдмрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред

BarChartViewController.m.zip
@ liuxuan30 рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЙрддреНрддрд░ рдореЗрдВ рдкрд╣рд▓реЗ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд┐рдпрд╛ рд╣реИред
рдореИрдВрдиреЗ рдЬреЛ рдХреБрдЫ рдХрд┐рдпрд╛ рд╡рд╣ рдбрдмрд▓ рдХреЗ рдмрдЬрд╛рдп рдХреБрдЫ рддрд┐рдерд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╕ Nstimeinterval рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдпрд╣ рдмрд╛рд░ рдирд╣реАрдВ рджрд┐рдЦрд╛ рд░рд╣рд╛ рдерд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдмрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХреГрдкрдпрд╛ рд╕рдВрд▓рдЧреНрди рдЬрд╝рд┐рдк рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рджреЗрдЦреЗрдВ, рдЖрдк рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдмрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕ рдкрд░ рдХрд┐рд╕реА рднреА рдорджрдж рдХреА рдмрд╣реБрдд рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдРрдкрд╕реНрдЯреЛрд░ рдкрд░ рдзрдХреЗрд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рд░реЛрдХрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдЗрд╕рдХрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдмрд╣реБрдд рдорджрджрдЧрд╛рд░ рд╣реЛрдЧрд╛ред

рдзрдиреНрдпрд╡рд╛рдж,
рдмреАрдУрдмреА

@ liuxuan30 рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЦреБрд▓рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рддрд╛рдХрд┐ рдпрд╣ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреА рддрд░рд╣ рд╣реА рдЕрдзрд┐рдХ рдХрд░реНрд╖рдг рдкреНрд░рд╛рдкреНрдд рдХрд░реЗред

рдзрдиреНрдпрд╡рд╛рдж,
рдмреАрдУрдмреА

рдореБрдЭреЗ рдЦреЗрдж рд╣реИ рдХрд┐ рдореИрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЕрдкрдиреЗ рдХрд╛рдо рдореЗрдВ рд╡реНрдпрд╕реНрдд рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдмрд╣реБрдд рдЬрд▓реНрджреА рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ред рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ
NSTimeInterval рджреЛрд╣рд░реА рд╣реИ рдореБрдЭреЗ рдпрд╛рдж рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП редред

@ liuxuan30 рд╣рд╛рдБ, рдпрд╣ рдПрдХ рдбрдмрд▓ рд╣реИред рдлреЙрд░реНрдореЗрдЯрд░ рдХреЗ рд╕рд╛рде, рддрд┐рдерд┐рдпрд╛рдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВред рд╕рд▓рд╛рдЦреЛрдВ рдХреЗ рдКрдкрд░ рдХреЗ рдорд╛рди рд╕рд╣реА рдврдВрдЧ рд╕реЗ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред

рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдмрд╛рд░ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣реЗ рд╣реИрдВред

рдпрджрд┐ рдЖрдк рд╡реНрдпрд╕реНрдд рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдХреЛрдИ рдФрд░ рд╣реИ рдЬреЛ рдЗрд╕ рдореБрджреНрджреЗ/рдмрдЧ рдХреЛ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИ?

рдзрдиреНрдпрд╡рд╛рдж,
рдмреАрдУрдмреА

рдареАрдХ рд╣реИ, рдореИрдВрдиреЗ рдПрдХ рддреНрд╡рд░рд┐рдд рдЬрд╛рдБрдЪ рдХреАред
рдПрдХреНрд╕ рдЕрдХреНрд╖ рд░реЗрдВрдЬ рд╣реИ

(lldb) po max - min
34041601.0

рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд░рддреЗ рд╕рдордп, barRect рдХреА рдЪреМрдбрд╝рд╛рдИ рдмрд╣реБрдд рдЫреЛрдЯреА рд╣реЛрддреА рд╣реИ:

тЦ┐ (30.7373051480045, 132.310035326087, 8.28906013339292e-06, 257.842777173913)
  тЦ┐ origin : (30.7373051480045, 132.310035326087)
    - x : 30.7373051480045
    - y : 132.310035326087
  тЦ┐ size : (8.28906013339292e-06, 257.842777173913)
    - width : 8.28906013339292e-06 //  <-- you won't see it
    - height : 257.842777173913

рддреЛ рдЖрдк рдЗрд╕реЗ рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВред
рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рд╣реИ, x рд╡реИрд▓ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП prepareBuffer() ,

рдЪрд▓реЛ barWidthHalf = barData.barWidth / 2.0 // barWidth 0.9 . рд╣реИ

рддрдм рдлрд┐рд░

let left = CGFloat(x - barWidthHalf)
let right = CGFloat(x + barWidthHalf)
barRect.size.width = right - left

рдпрд╣ рддреБрдЪреНрдЫ рд╣реИред

@danielgindi рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдмрдбрд╝реЗ рдореВрд▓реНрдпреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП barWidth рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдпрд╛ рдпрд╣ рдбрд┐рдЬрд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рд╣реИред

x рд░реЗрдВрдЬ рдмрд╣реБрдд рдмрдбрд╝реА рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рд╣реА рдмрд╛рд░ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдо рдмрд╛рд░ рдХреА рдЪреМрдбрд╝рд╛рдИ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣рд╛рд░реНрдб рдХреЛрдбреЗрдб рдирдВрдмрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдкрд░реЗрд╢рд╛рдиреА рд╣реЛрддреА рд╣реИред рдореИрдВрдиреЗ рдмрд╛рд░рд╡рд┐рдбреНрде, рдЫреЛрдЯреА рдЧрд╛рдбрд╝реА рдХреЛ "рд╕рд╛рдорд╛рдиреНрдп" рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред

рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди рдмрдбрд╝реА рджрд┐рди рдЗрдХрд╛рдЗрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рди рдХрд┐ x рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реЗрдХрдВрдбред рдпрд╛ рдЖрдк рдЗрд╕реЗ рдХреЗрд╡рд▓ 1,2,3,4,.. рдореЗрдВ рдмрджрд▓ рджреЗрдВ рдФрд░ рдлреЙрд░реНрдореЗрдЯрд░ рдХреЛ рдлреЙрд░реНрдореЗрдЯ рдХрд░рдиреЗ рджреЗрдВред рдЖрдкрдХреЗ рдбреЗрдЯрд╛ рдореЗрдВ, рдЖрдкрдХреЗ x рд╡реИрд▓ рдПрдХ рд╡рд░реНрд╖ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рджрд┐рдиреЛрдВ рдореЗрдВ рднреА, рдпрд╣ 365 рдмрд╛рд░ рд╣реИ рдФрд░ рдмрд╛рд░ рднреА рдкрддрд▓рд╛ рд╣реЛрдЧрд╛ред

рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ barWidth рдХреЛ рдмрджрд▓рдирд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреА рдореВрд▓реНрдп рд╕реАрдорд╛ рдореЗрдВ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрднреА рддрдХ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рд╢реЙрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рд╣реА рд╕рдВрдЦреНрдпрд╛ рдХреИрд╕реЗ рдвреВрдВрдвреЗрдВред

рдирдорд╕реНрддреЗ,
рдореБрдЭреЗ рдареАрдХ рд╡реИрд╕реА рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрдВрдж рд╣реЛ рдЧрдИ рд╣реИ ...
рдпрджрд┐ рдореИрдВ рдПрдХ рд▓рд╛рдЗрди рдЪрд╛рд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдЪрд╛рд░реНрдЯ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЖ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореИрдВрдиреЗ рд▓рдВрдмрд╡рдд рдмрд╛рд░ рдЪрд╛рд░реНрдЯ рдЪреБрдирд╛ рд╣реИ, рддреЛ рдХреЛрдИ рдмрд╛рд░ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред
рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рд╡реГрджреНрдзрд┐ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдПрдХ рдмрдЧ рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж

BarChartData.barWidth рдХреЛ рд╡рд┐рд╢рд╛рд▓ рдорд╛рди (~10 000) рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ

рдореИрдВрдиреЗ рд╕реАрдорд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдХреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛
рдЪрд╛рд░реНрдЯрдбреЗрдЯрд╛рд╕реЗрдЯ.рдмрд╛рд░рдмреЙрд░реНрдбрд░рдХрд▓рд░ = UIColor.blue
рдЪрд╛рд░реНрдЯрдбреЗрдЯрд╛рд╕реЗрдЯ.рдмрд╛рд░рдмреЙрд░реНрдбрд░рд╡рд┐рдбреНрде = 30
рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдкрдХреА рдорджрдж рд╣реЛрдЧреА

рдмрд╛рд░рдмреЙрд░реНрдбрд░рд╡рд┐рдбреНрде рд╕реЗрдЯ рдХрд░рдирд╛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред

рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди? BarBorderWidth рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдХреЗрд╡рд▓ рдПрдХ рдпрд╛ 2 рдбреЗрдЯрд╛ рдмрд┐рдВрджреБ рд╣реИрдВ рддреЛ рд▓рд╛рдЗрдиреЗрдВ рдмрд╣реБрдд рдкрддрд▓реА рд╣реИрдВ (рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдЖрдкрдиреЗ рдЗрд╕реЗ barBorderWidth 1 рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИ)ред рдпрджрд┐ рдЕрдзрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╕рднреА рдмрд╛рд░ рдЖрдкрд╕ рдореЗрдВ рдЬреБрдбрд╝ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд╕рд╛рде рдорд┐рд▓ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЕрдЪреНрдЫреЗ рдирд╣реАрдВ рд▓рдЧрддреЗ рд╣реИрдВред

рдЗрд╕ рдкрд░ рдХрд┐рд╕реА рднреА рдХрд╛рдо рдХреА рдмрд╣реБрдд рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред

рдПрдХ рдЖрдХрд░реНрд╖рдг рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░реЗрдВ!

bars not displaying

рдореЗрд░рд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг:
рдпрд╣ рдПрдХ рдмрдЧ рд╣реИ ... рджрд┐рдирд╛рдВрдХ long рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдорд╛рди 1542039314621 рд╣реИ, рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ 12 рдирд╡рдВрдмрд░ 2018 SimpleDateFormat рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд╡рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рджред рд▓реЗрдХрд┐рди рдПрдХреНрд╕ рдПрдХреНрд╕рд┐рд╕ рдкрд╣рд▓реЗ рдЕрдкрдирд╛ long рдореВрд▓реНрдп рд▓реЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдкрд░реЗрд╢рд╛рдиреА рд╣реЛрддреА рд╣реИред рдореЗрд░реЗ рд╕рдорд╛рдзрд╛рди xHelper, рдмрдЬрд╛рдп рдЗрдирдкреБрдЯ рдмрдбрд╝рд╛ рдореВрд▓реНрдп, xHelper рд╕реВрдЪрдХрд╛рдВрдХ рдХрд░ рд░рд╣реА рд╣реИ long рдбреЗрдЯрд╛ рдкрд░реЛрдХреНрд╖ рдХрд╛рдЙрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдЯрд╛рдЗрдк counter++ , Xvalue рдмрдЧрд▓ рдореЗрдВ рдмрдбрд╝рд╛ рдкрдХрдбрд╝ long рдореВрд▓реНрдпред рдФрд░ рдпрд╣ рдХреЛрдб рдПрдХ рдЖрдХрд░реНрд╖рдг рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдпрд╣ рдЧрд▓рдд рдХреЛрдб рд╣реИ:

String[] month = new String[] {"Jan", "Feb", "Mar", "Aprl"};     
xAxis.setValueFormatter(new MyXAxisValueFormatter(month)); 

рдпрд╣ рдЧрд▓рдд рдХреЛрдб рд╣реИ:

 xAxis.setValueFormatter(new IAxisValueFormatter() {
         <strong i="20">@override</strong>
         public String getFormattedValue (float value, AxisBase axis){
              Date dates = new Date((long) value); //take your long value from BarEntry 
              SimpleDateFormat sdf = new SimpleDateFormat("dd/MM");
              return  sdf.format(dates);
              }
}

рдпрд╣ рдЧрд▓рдд рдХреЛрдб рд╣реИ:

for (int i = 0; i < xValues.length; i++)
Date date = new Date(xValues[i]);

рдпрд╣ рдЧрд▓рдд рдХреЛрдб рд╣реИ:

List<Date> dates = new ArrayList<Date>();
for (int i = 0; i< xHelper.length; i++)
dates.add(new Date(xValues[i]));

рдпрд╣ рдХреЛрдб рдПрдХ рдЖрдХрд░реНрд╖рдг рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM"); // as you seen on the picture 
String[] xDates = new String[xHelper.length];
for (int m = 0; m < xHelper.length; m++) 
      xDates[m] = sdf.format(new Date(xValues[m]));

List<String> myDateList = new ArrayList<String>();
for (int n = 0; n < xHelper.length; n++)
      myDateList.add(xDates[n]);

//convert your ArrayList into array
String[] month = (String[]) myDateList.toArray(new String[xHelper.length]);

xAxis.setValueFormatter(new YourXAxisValueFormatter(month));

рдпрд╣ рдореЗрд░рд╛ рдкреВрд░реНрдг рдХреЛрдб рд╣реИ рдФрд░ xValue рдФрд░ xHelper рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдм рдХреБрдЫ рдмрддрд╛ рджреЗрддрд╛ рд╣реИред

public class MyDatabaseHelper {
long xValue
int xHelper, yValues;

//empty constructor
public MyDatabaseHelper(){
}

//constructor
public MyDatabaseHelper(long xValue, int yValues, int xHelper){
         this.xValue = xValue;
         this.yValue = yValue;
         this.xHelper = xHelper;
}

//Method
public long getxValue() {return xValues;}

public int getyValue() {return yValues;}

public int getxHelper() {return xHelper;}
}

рдЗрд╕рдХреЗ рдмрд╛рдж рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ рдмрдирд╛рдПрдВ рдФрд░ рдлрд┐рд▓рд┐рдк рдЬрд╛рд╣реЛрджрд╛ рдХреЛ рдзрдиреНрдпрд╡рд╛рдж

 public class MyXAxisValueFormatter implements IXAxisValueFormatter {
          private String[] mValues;`

          //constructor with array parameter
         public MyAxisValueFormatter(String[] values) {
                this.mValues = values;
          }

         <strong i="9">@override</strong>
         public String getFormattedValue(float value, AxisBase axis) {
              return mValues[(int) value];
         }
}

рдЕрдВрдд рдореЗрдВ MainActivity class рдмрдирд╛рдПрдВ:

public class MainActivity extends AppCompatActivity {

EditText yInput;
Button buttonInsert;
FirebaseDatabase firebaseDatabase;
DatabaseReference reference;
BarChart barChart;
//this is xHelper as counter for indexing x values
int counter = 0;

<strong i="13">@override</strong>
protected void onCreate (Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        yInput = (EditText) findViewById(R.id.editText);
        insertButton = (Button) findViewById(R.id.buttonInsert);
        firebaseDatabase = FirebaseDatabase.getInstance();
        reference = firebaseDatabase.getReference("ChartTable");
        insert();
  }
     public void insert() {
           buttonInsert.setOnClickListener(new View.OnClickListener() {
                   <strong i="14">@override</strong>
                    public void onClick (View v)
                    String id = reference.push().getKey();
                    long x = new Date().getTime();  //this is big value
                    int y = yInput.getText().toString();

                    // when you click button this counter increase
                    //note: using this counter will make your app being crash on 5 step Granularity
                    //my granularity is setGranularity(5);
                    //this is my problem and i don't know why. so, i have to make the counter start from zero
                    //like this                
                    counter++
                    int c = counter - 1;

                    // input value into class
                    MyDatabaseHelper db = new MyDatabaseHelper(x, y, c);
                    //input method into Firebase Database
                    reference.child(id).setValue(db);
           });
     }

    <strong i="15">@override</strong>
    protected void onStart {
    super.onStart();

                   reference.addValueEventListener(new ValueEventListener() {
                            <strong i="16">@override</strong>
                            public void onDataChange(<strong i="17">@NonNull</strong> DataSnapshot dataSnapshot) {

                                    int count = (int) dataSnapshot.getChildrenCount();
                                    long[] xValues = new long[count];
                                    int[] yValues = new int[count];
                                    int[] xHelper = new int[count];

                                    int index = 0;
                                    for (DataSnapshot myDataSnapshot : dataSnapshot.getChildren()){
                                    MyDatabaseHelper db = myDataSnapshot.getValue(MyDatabaseHelper.class);
                                    xValues[index] = db.getxValue();
                                    yValues[index] = db.getyValue();
                                    xHelper[index] = db.getxHelper();
                                    index++
                                   }

                                   ArrayList<BarEntry> barEntry = new ArrayList<BarEntry>();
                                   for (int i = 0; i < xHelper.length; i++)
                                         barEntry.add(new BarEntry(xHelper[i], yValues[i]));

                                   BarDataSet set1 = new BarDataSet(barEntry, "Project Progress");
                                   set1.setColors(ColorTemplate.VORDIPLOM_COLORS);
                                   set1.setDrawValues(false);                              

                                   ArrayList<IBarDataSet> dataSets =  new ArrayList<>();
                                   dataSets.add(set1);

                                   BarData data = new BarData(dataSets);

                                   XAxis xAxis = barChart.getXAxis();
                                   xAxis.setGranularity(5f);
                                   xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);

                                   // input xValues[] into Date using List
                                   SimpleDateFormat sdf = new SimpleDateFormat("dd/MM");
                                   String[] xDates = new String[count];
                                   for (int m =0; m < xValues.length; m++)
                                         xDates[m] = sdf.format(new Date(xValues[m]));

                                  List<String> xDatesList = new ArrayList<String>();
                                  for (int n = 0; n < xDates.length; n++)
                                         xDatesList.add(xDates[n]);

                                  // you cannot insert xDatesList directly into setValueFormatter
                                  //so convert ArrayList into array
                                  String[] month = (String[]) xDatesList.toArray(new String[count]);

                                 //finally
                                 xAxis.setValueFormatter(new MyXAxisValueFormatter(month));
                                //done
                                barChart.getAxisRight().setEnabled(false);
                                barChart.setDragEnabled(true);
                                barChart.setScaleEnabled(true);
                                barChart.setPinchZoom(true);
                                barChart.setDoubleTapToZoomEnabled(false);
                                barChart.setDrawGridBackground(false);
                                barChart.setDragEnabled(true);

                                barChart.setData(data);
                                barChart.invalidate();


                             }
                             <strong i="18">@override</strong>
                             public void onCancelled(<strong i="19">@NonNull</strong> DatabaseError databaseError){
                            }
                   });
    }
} 

рд╕рдм рдХреБрдЫ рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдФрд░ рдпрд╣ рдореЗрд░рд╛ рд╡рд┐рд╡рд░рдг рд╣реИ:

рдореИрдВ рдЗрд╕ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛:

String[] month = new String[] {"Jan", "Feb", "Mar", "Aprl"};     
xAxis.setValueFormatter(new MyXAxisValueFormatter(month)); 

рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЧрддрд┐рд╢реАрд▓ рдЗрдирдкреБрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдореИрдВ "рдЬрди", "рдлрд╝рд░рд╡рд░реА" рдФрд░ рдЖрдЧреЗ рдирд╣реАрдВ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ред рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди:
String[] month = (String[]) myDateList.toArray(new String[xHelper.length]);

myDateList.toArray рдЖрдкрдХреЛ ArrayList рд▓реЗрдиреЗ рдФрд░ рдЗрд╕реЗ рд╕рд░рдгреА рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдФрд░ рдореИрдВ рдЗрд╕ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рдХреНрдпреЛрдВрдХрд┐ ->

xAxis.setValueFormatter(new IXAxisValueFormatter {

         <strong i="15">@override</strong>
         public String getFormattedValue(float value, AxisBase axis) {
              Date dates = new Date((long) value)
              SimpleDateFormat sdf = new SimpleDateFormat("dd/MM");
              return sdf.format(dates);
         }
}

рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ value x рдПрдХреНрд╕рд┐рд╕ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рдмрд╛рд░реНрд╕ рдХреЛ рдЧрд╛рдпрдм рдХрд░ рджреЗрддрд╛ рд╣реИред рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рдЗрд╕ рддрд░рд╣ xHelper рд╣реИ:

ArrayList<BarEntry> barEntry = new ArrayList<BarEntry>();
for (int i=0; i<xHelper.length; i++)
    barEntry.add(new BarEnry(xHelper[i], yValues[i]));

рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ, xHelper рдореЗрдВ рдЕрдиреБрдХреНрд░рдордг рдХреЗ рд▓рд┐рдП рдЫреЛрдЯрд╛ рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП Date

рдФрд░ рдпрд╣ рд░рд╣рд╕реНрдп рд╣реИ:
рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Date рдЗрдирдкреБрдЯ рдирд╣реАрдВ рдХрд░рддреЗ --> String[] month = new String[]{...}; рд▓реЗрдХрд┐рди myDateList

String[] month = (String[]) myDateList.toArray(new String[xHelper.length]);
xAxis.setValueFormatter(new YourXAxisValueFormatter(month));

@sjuvvalapalem @avitus рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ред

рдЗрд╕ рдмрдЧ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд┐рдП 2 рд╕рд╛рд▓ рд╣реЛ рдЧрдП рд╣реИрдВ, рдФрд░ рдЕрднреА рднреА рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ?

рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдлрд╛рдЗрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореИрдВрдиреЗ рдореВрд▓ рд░реВрдк рд╕реЗ рдЗрд╕реЗ added this to To do in 4.0 Release рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдерд╛

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдереА рдФрд░ рдПрдХреНрд╕-рдЕрдХреНрд╖ рдХреА рд╕реАрдорд╛ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдореЗрд░реЗ рдмрд╛рд░ рдХреЛ рд╕рд╣реА рдЖрдХрд╛рд░ рдореЗрдВ рд╕реЗрдЯ рдХрд░рдХреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛:

let data = BarChartData(dataSets: [dataSet])

let dataSetRange = dataSet.xMax - dataSet.xMin
let availableSpacePerBar = dataSetRange / Double(dataSet.entryCount)
data.barWidth = availableSpacePerBar * 0.8 // 80% of available space

chartView.data = data

BarChartData.barWidth рдХреЛ рд╡рд┐рд╢рд╛рд▓ рдорд╛рди (~10 000) рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ

рдпрд╣ рддрдм рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм https://github.com/danielgindi/Charts/issues/1742#issuecomment -519056482 рдЖрдкрдХреЗ рдбреЗрдЯрд╛ рд░реЗрдВрдЬ рдХреЗ рдмреАрдЪ рдХреБрдЫ рд▓рд╛рдкрддрд╛ рдорд╛рди рд╣реИрдВ, рдпрд╛рдиреАред рдЧреИрд░ рдирд┐рд░рдВрддрд░ рдФрд░ рдЖрд╡рдзрд┐рдХ рдбреЗрдЯрд╛ рд╕реНрд░реЛрддред

рдпрджрд┐ рдЖрдкрдХреЗ рдмреАрдЪ рдореЗрдВ рд▓рд╛рдкрддрд╛ рдорд╛рди рд╣реИрдВ,
рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдмрд╛рдж https://github.com/danielgindi/Charts/issues/1742#issuecomment -519056482
Screenshot 2020-05-16 at 12 52 11 PM

BarChartData.barWidth рдХреЛ рднрд╛рд░реА рдореВрд▓реНрдп (~ 10 000) рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ
Screenshot 2020-05-16 at 12 52 40 PM

рд▓реЗрдХрд┐рди рджреЛрдиреЛрдВ рдмрдбрд╝реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рднреА рдкрд░реНрдпрд╛рдкреНрдд рдирд┐рд░рдВрддрд░ рдореВрд▓реНрдп рд╣реЛрддреЗ рд╣реИрдВ
IMG_81DD4290AE1B-1

рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл 3 рдШрдВрдЯреЗ рдЧрдВрд╡рд╛рдП, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдкрд░ рдирдЬрд░ рд░рдЦ рд░рд╣рд╛ рд╣реВрдВред рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

JW00332 picture JW00332  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Bharati555 picture Bharati555  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

valeIT picture valeIT  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

PrashantKT picture PrashantKT  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

cilasgimenez picture cilasgimenez  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ