The macrophyte species composition was studied in relation to different flow and substrate conditions in middle-sized streams of Latvia. The frequency of macrophyte species along 131 surveyed sites was determined. Each survey was supplemented by a description of environmental factors (substrate type, flow velocity, shading, stream width, and water depth). On the basis of field observations, five groups of stream stretches with different stream velocity and substrates were distinguished: (1) fast-flowing streams on gravelly substrate, (2) slow-flowing streams on gravelly substrate, (3) fast-flowing streams on sandy substrate, (4) slow-flowing streams on sandy substrate, and (5) slow-flowing streams with soft, silty substrate. The botanical differences between the identified stream types were described. A total of 58 macrophyte taxa were found in the streams. The most common macrophyte species were Nuphar lutea, found in 60% of all sites, followed by Sparganium emersum, S. erectum s.l., Phalaris arundinacea, Alisma plantago-aquatica, and Lemna minor. The number of species varied between 1 and 22 per site, the highest species richness (22) was found in slow-flowing streams with gravelly substrate. Species-poor macrophyte communities were characteristic of fast-flowing streams on sandy substrate. CCA analysis revealed that the development of macrophyte species in the investigated streams was most strongly dependent on the catchment area, altitude, and current velocity gradient. Analyses showed correlations between the number of taxa and stream width and catchment area, as well as the number of taxa and macrophyte cover with shading and altitude (negative correlation). Both the number of taxa and macrophyte cover correlated with substrate.