I know that it is possible to color a vector map by attribute. I separated a map into 4 colors based on an attribute and now I want to generate a new map for each color. Is there a way to do this in QGIS?
Presuming you mean that you coloured each in through style > categorised. So therefore you must have an attribute distinguishing them apart.
Go to vector>data management tools> split vector layer. Select the layer and select the attribute to split it by. You will need to colour them after again but if you opened it in another instance of QGIS you would need to do so anyway.
I assume you mean layer when you say map, and that you colored your features in your current layer by using an attribute-column that holds 4 distinct values.
Option: Do 4 queries on your attribute table (
Right-click on your layer in TOC -> Open Attribute Table -> Look for "the_value" in "the_attribute_column" -> Search-Button), selecting each time all features with the chosen value, and
Right-click on layer in TOC -> Save Selection As ...and save it to a new shape file which you can load into canvas while saving.
Option: Install the LayersByField plugin. Under
Vector -> Split Layers By Field -> Select Input layer, Select Attribute ColumnThis will produce as many new layers as your attribute column has unique values. The produced layers are named like "orginallayername_attributevalue". In contrary to option 1, no new files are created, but the new layers are stored within your project file. But once your remove/move your original shape from/on your computer, the new layers become invalid cause the loose connection to their data provider.
As with both options, the newly created layers will get new, random colors, so you will have to redo your coloring to match your original layer's layout.