I need to create a chart based on items from a list dynamically in a webpart...
If you can use scripts instead of code, you could use the Google Visualization API. I have done it for minor stuff, and have to say it does the job.
I'll give you an example you could build on just in case its a valid option to use in your scenario:
For more details see my blog post Visualizing organizational charts in SharePoint with Google Chart Tools
It's not programmatically, but a good start is using the chart webpart that is delivered with SharePoint 2010. For a guide on how to use it:
If that isn't enough, you can use some of the following options
- Reporting services
- BI stuff from sharepoint
- implement asp.net charting controls yourself in a custom webpart.
There are many ways to include charts in SharePoint. To get more specific answers you would need to provide more details.
To get you started, here is a lightweight solution that builds pie, bar and column charts:
It is based on the Google visualization API, like the solution posted by Anders Aune. There are many other similar charting tools you can use: YUI, HighCharts (fee), etc.
In MSS, you have a chart Web Part (Bas Lijten's answer). The charts look nice but are limited in practice (no aggregation for example). You could also consider Excel Services: push your list data to Excel, build the charts, then display them on a SharePoint page.
If you need more advanced analysis, consider SSRS. The upcoming version (2012) is said to have great integration with SharePoint.
Also using the visualization API directly (as Anders Aune proposed) might be a valid alternative.
Using MS Chart Controls in a custom web part might require lots of work as the API does not directly support SP lists and the API may overall feel a bit complex. Also some web.config modifications would be needed. But with this approach you definitely can end up with good looking (png) charts.